[英]VBA Excel: How to assign range of cells to another range of cells?
[英]How to assign a value to a Range created with Cells() in VBA
我想使用Range
为多个单元格分配一个值。 我必须使用变量定义范围,这就是我使用Cells()
参数的原因,但是当我使用Cells
创建 Range object 时,编译器返回 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
以及适当的行/列单元格引用。
.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
您应该能够使其适应您的代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.