前面的课程中讲解了在 VBA 中引用单元格区域的方法,如果要在 Excel VBA 中直接给单元格区域赋值,可以在这些方法上使用 Range.Value 属性,由于 Range 对象的默认属性就是 Value
,因此 .Value
可以省略。
示例
直接给单元格或单元格区域的 Value 属性赋值,单元格的值可以是任何合法的 VBA 数据类型,包括字符串、数字、日期、逻辑值等。例如:
Range("A1").Value = "Hello, world!"
Range("A1") = "Hello, world!"
Cells(1, 1).Value = "果果云课堂"
Cells(1, 1) = "果果云课堂"
[A1] = 100
ActiveCell.Value = True
Rows(1).Value = Date
Range("1:1,3:3,8:8") = 3
ActiveSheet.UsedRange.Value = 4
Range("A1:B3").Offset(3, 3).Value = 5
Range("A1").CurrentRegion.Value = 6
Range("A1").Resize(4, 4).Value = 7
需要注意的是:在对单元格区域直接赋值时,应保证源区域与目标区域的大小一致。如果源区域为动态的单元格区域,则可使用 Resize属性确定目标区域。
以下示例将工作表 Sheet1 中的 A1 单元格的当前区域的数值复制到工作表 Sheet2 的 A2 单元格为起始的单元格区域:
Sub GetValue()
With Sheets("Sheet1").Range("A1").CurrentRegion
Sheets("Sheet2").Range("A2").Resize(.Rows.Count, .Columns.Count).Value = .Value
End With
End Sub