【原创】VBA学习笔记(307)VBA的一些细节:比如 cells() 可随意,但是 range() 赋值需要range().value

1 range赋值,有时候注意些完整,加range().value

  •  cells()  赋值          可以 cells()=cells()
  •  range() 赋值         不可以 range()=range()
  •  Range("b5:d7") = Range("b1:d3").Value   才可以

Sub test112()

Range("f1:h3") = Range("b1:d3")
Range("b5:d7") = Range("b1:d3").Value

End Sub

赋值注意

  • 单元格赋值,带不带 cells().value 都可以
  • range("a1") 这种一个单元格的,等同cells(),赋值也可以省略value
  • range()区域就可以直接当2维数组使用的
  • range()区域不只1个单元格的时候,赋值就需要使用  .value(),否则赋值为空
  • range()赋值,这样加了value变成   range().value 赋值正确

2 继续测试

Sub test5()
 
'这两个都可以
Cells(5, 4) = Cells(1, 4)
Cells(5, 5) = Cells(1, 5).Value
 
'这个不行
Range("j1:m3") = Range("d1:g3")
'加value就可以
Range("d9:g11") = Range("d1:g3").Value


'这个可以
arr1 = Range("d1:g3")
Range("j5:m7") = arr1
 
'这个居然也可以,range指定并非需要左下右上,其他指定区域方式也可以
Range("j11:m9") = arr1
 
'这个可以
Range("j13").Resize(UBound(arr1, 1), UBound(arr1, 2)) = arr1
Range("j13").Resize(UBound(arr1, 1), UBound(arr1, 2)).Interior.ColorIndex = 6
 
'这个可以
Cells(17, 10).Resize(3, 3) = arr1
Cells(17, 10).Resize(3, 3).Interior.ColorIndex = 6

 
 '这个可以
Cells(21, 10).Resize(UBound(arr1, 1), UBound(arr1, 2)) = arr1
Cells(21, 10).Resize(UBound(arr1, 1), UBound(arr1, 2)).Interior.ColorIndex = 6
 
 
'这个可以
[j25].Resize(2, 2) = arr1
[j25].Resize(2, 2).Interior.ColorIndex = 6
 
 
 '这个可以
[j29].Resize(UBound(arr1, 1), UBound(arr1, 2)) = arr1
[j29].Resize(UBound(arr1, 1), UBound(arr1, 2)).Interior.ColorIndex = 6
 
End Sub

3 继续测试的代码

Sub test900()
 
 
For Each I In Range("f4:f13")
   Debug.Print I
Next
 
arr1 = Range("f4:f13")
Cells(4, 1).Resize(10, 1) = arr1
Cells(4, 1).Resize(10, 1).Interior.ColorIndex = 10
 
 
'单元格赋值,带不带 cells().value 都可以
'range("a1") 这种一个单元格的,等同cells(),赋值也可以省略value
Cells(1, 3) = Cells(1, 6)
Cells(1, 3).Interior.ColorIndex = 8
Cells(2, 3).Resize(1, 1) = Cells(2, 6).Value
Cells(2, 3).Interior.ColorIndex = 8
Cells(3, 3) = Range("f3")
Cells(3, 3).Interior.ColorIndex = 8
 
 
'这样可以变色,但赋值都为空
'range()区域就可以直接当2维数组使用的
'range()区域不只1个单元格的时候,赋值就需要使用  .value(),否则赋值为空
Cells(4, 3).Resize(10, 1) = Range("f4:f13")
Cells(4, 3).Resize(10, 1).Interior.ColorIndex = 8
 
 
 
'range()赋值,这样加了value就可以
Cells(4, 4).Resize(10, 1) = Range("f4:f13").Value
Cells(4, 4).Resize(10, 1).Interior.ColorIndex = 23
 
 
End Sub
发布了370 篇原创文章 · 获赞 45 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/xuemanqianshan/article/details/103730955