【问题标题】:How declare cell object variable in Excel VBA如何在 Excel VBA 中声明单元格对象变量
【发布时间】:2023-02-17 19:05:22
【问题描述】:

我在 excel 中循环一个范围,如下所示,需要获取单元格的位置以及获取对象的智能感知,尝试将 CL 用作单元格,但它不起作用

Sub Excel_Collection1()
    Dim rng As Range
    'Dim CL As Cell
    For Each CL In rng
        If CL.Value <> "" Then
            MsgBox (CL.Value)
        End If
        
    Next CL

因此,对于范围内的每个单元格,我需要获取其位置 C1、C2,以便创建一个从其位置开始的动态范围,比如 A1:A20

感谢您的帮助

【问题讨论】:

  • Dim CL as Range。它是一个带有单行/单列的Range...但是在范围单元格之间迭代是较慢的迭代方式。尝试更好地描述您尝试完成的事情。我们也许可以建议更快的方法......
  • 没有 Cell 对象类型 - 它是 Range

标签: excel vba range


【解决方案1】:

正如在 cmets 中已经写的那样:没有 Cell 对象类型。单元格只是一个仅包含一个单元格的范围,或者换句话说,Range 可以包含一个或多个单元格。

如果您不确定您需要什么类型,声明一个类型为Variant的变量,将您需要的分配给该变量并使用调试器工具检查该变量包含的内容,例如,在 `Debug.Print 语句处设置一个断点:

Sub testSub()
    Dim cell As Variant
    For Each cell In ActiveSheet.Range("A1:A5")
        Debug.Print "..."
    Next
End Sub

现在打开当地人窗口(View->Locals Window) 你可以看到数据类型:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    • 1970-01-01
    • 2019-12-06
    相关资源
    最近更新 更多