【问题标题】:The value of a range that is variable可变范围的值
【发布时间】:2020-11-12 12:19:51
【问题描述】:

如果 Cells(Y,X) 的值等于“”,则我有一个循环到 Sheet("Overview") 的代码,然后 Y = Y + 1 否则其余的。代码部分运行错误

If Range(Cells(Y,X).Address).Value = "" Then

如果我将例如“H4”放入它可以工作但不是这样。我在 Cells 引用中做错了什么?

循环的整个代码是:

Sub Maandag1()

Dim X As String
Dim Y As String
    X = 8
    Y = 4

    
    Do While Y <= 4
        
        If Sheets("Overview").Range(Cells(Y, X).Address).Value = " " Then
            Y = Y + 1
        Else
            With Sheets("Controle")
                .Range("B7").Value = Sheets("Overview").Range(Cells(Y, X).Address).Value
                .Range("B8").Value = Sheets("Overview").Range(Cells(Y, X + 1).Address).Value
                .Range("B13").Value = Sheets("Overview").Range(Cells(Y, X + 2).Address).Value
                .Range("B18").Value = Sheets("Overview").Range(Cells(Y, X + 3).Address).Value
                .Range("B23").Value = Sheets("Overview").Range(Cells(Y, X + 4).Address).Value
                .Range("B28").Value = Sheets("Overview").Range(Cells(Y, X + 5).Address).Value
            End With
            
            Y = Y + 1
        End If
    Loop
        
End Sub

【问题讨论】:

    标签: vba range cell


    【解决方案1】:

    将该行代码更改为:

    If Sheets("Overview").Cells(Y, X).Value = " " Then

    无需使用.Cells 方法创建 Range 对象,只需使用该范围来获取字符串地址以用作再次构建范围的一种方式。

    但这里真正的问题是您已将XY 声明为字符串。 .Cells 操作需要很长的参数

    Dim X as Long
    Dim Y as Long
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多