如何将值分配给在 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
您应该能够根据您的代码进行调整。
我想使用 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
您应该能够根据您的代码进行调整。