【发布时间】:2022-01-20 10:02:28
【问题描述】:
我试图将一个不连贯的范围分配给一个变量,但我似乎无法做到正确。谁能帮帮我?
我的代码如下所示:
Dim tstRange As Range
Dim strRange As String
Select Case strSite
Case "Lerum/Aspedalen"
strRange = "B" & iLastRow & ", H" & iLastRow & ":L" & iLastRow
With Kurtans_favorit
Set tstRange = .Range(strRange)
Set tstRange = .Range("B" & iLastRow, "H" & iLastRow & ":L" & iLastRow)
End With
将范围分配给tstRange 的第一种方法和第二种方法都不起作用(嗯,实际上第一种方法可以,但它只是给了我范围内第一个单元格的内容,这不是我的意图) .
我打算使用这个范围来检查它们是否包含任何值。如果他们这样做,用户将收到一个问题,是否覆盖或取消他/她正在执行的操作。
【问题讨论】:
-
您的第一个是正确的,所以我认为您尝试使用实际上是问题的范围。
-
嗨,你能澄清一下吗?我不明白你的评论。
-
您说第一个有效“但它只给了我范围内第一个单元格的内容”。事实并非如此,所以我认为您正在检查问题的值。如果您检查
tstRange.Cells.Count,结果是否正确 - 即 5? -
实际上它给了我6的结果,这是正确的。第二个给我 11,有点令人困惑。
-
替代方案是
Set tstRange = .Range("B1,H1:L1").Offset(iLastRow-1)