vba - #值(value)!使用评估索引引用单个单元格范围时出错

标签 vba excel evaluate

我想将 Excel 中的选定范围转换为大写。 这是我的代码

Dim rng As Range
Set rng = Selection
rng.Value = rng.Parent.Evaluate("INDEX(UPPER(" & rng.Address & "),)")

它适用于很大的范围,但给出#VALUE!仅选择单个单元格时出错。

最佳答案

  1. 如果您选择了整列或整行,请将您的选择范围缩小到已使用的范围。
  2. 如果只选择了一个单元格,则处理单个单元格;批量处理任何多个单元格选择。

    Dim rng As Range
    Set rng = Intersect(Selection, Selection.Parent.UsedRange)
    If rng.Cells.Count > 1 Then
        rng.Value = Application.Evaluate("INDEX(UPPER(" & rng.Address & "),)")
    Else
        rng = UCase(rng.Value)
    End If
    

关于vba - #值(value)!使用评估索引引用单个单元格范围时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48998336/

相关文章:

Coldfusion 语法 - 如何使用 Evaluate

dynamic - 双重评估 - 如何根据保存列名称的变量访问我的查询列?

vba - 在 Access 文本框中创建多个链接

vba - 使列表框项目像选项按钮 VBA 一样工作

excel - 在 VBA 中,希望编写一个脚本,如果单元格包含某些文本(范围设置为列),该脚本将执行一个函数

swift - 在 Swift 应用程序中从 Excel 文档中读取数据

vba - 在动态创建的工作表上运行代码时出现运行时错误 1004

excel - Excel中与分隔符公式连接的问题

excel - 如何突出显示两个不同范围和工作表中的匹配值?

opencv - FDDB评估代码