繁体   English   中英

如何为 VBA 中使用 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM