如何将值分配给在 VBA 中使用 Cells() 创建的范围

How to assign a value to a Range created with Cells() in VBA

我想使用 Range 为多个单元格赋值。我必须使用变量定义范围,这就是我使用 Cells() 参数的原因,但是当我使用 Cells 创建范围对象时,编译器 returns 出现 1004 错误(应用程序定义或对象-定义的错误)。 不使用变量时也会发生错误,例如 Range(Cells(0,0), Cells(1,0)).

这是我的代码

Dim Offset1 As Integer: Offset1 = 0
Dim Offset2 As Integer: Offset2 = 1
With ThisWorkbook.Worksheets("Sheet1")
  .Range(.Cells(Offset1, 0), .Cells(Offset2, 0)).Value = "NewValue"
End With

关于您的尝试有几个问题,但让我为您详细说明。

如果您想使用 .Range() 方法,则它需要一个合格的单元格范围作为参数。

这是预期的(显然在 With 语句中)...

.Range("A1:B10").Value = "NewValue"

...如果您想要类似的东西但希望它有点动态,那么指定的结果将产生相同的结果。您需要使用 .Address 以及适当的 row/column 单元格引用。

.Range(.Cells(1, 1).Address & ":" & .Cells(10, 2).Address).Value = "NewValue"

.Cells(1, 1) = 单元格 A1

.Cells(10, 2) = 单元格 B10

如果您想要偏移特定的单元格,那么您首先需要一个正确的单元格引用。例如,如果您想要单元格 B10 右侧 2 列和下方 5 行,您可以这样做 ...

.Cells(10, 2).Offset(5, 2).Address

您应该能够根据您的代码进行调整。