很明顯的是 vba中使用Dim設定變量類型,Set將對象引用賦值給變量
' 將Range對象賦值給變量rg
Dim rg As Range ' 聲明rg為Range對象
Set rg = Range("A1") ' 設定rg為Range("A1")的引用,之後操作rg和操作Range("A1")一樣了
' 如果不使用Set,下面的代碼將報錯
Dim rg As Range
rg = Range("A1") ' 這段代碼將報錯
' 在非顯示聲明rg的前提下,下面的代碼將會得到不一樣的結果
rg = Range("A1") ' rg將會是Range("A1")的內容,rg的類型將會是一種基本類型,Integer/String等
Set rg = Range("A1") ' 這種情況下,rg將會是Range對象
用Dim語句聲明變量就是定義該變量應存儲的數據類型; 如果不指定數據類型或對象類型,也就是不用Dim定義,且在模塊中沒有 Deftype 語句, 則該變量按預設設置是 Variant 類型。
給普通變量賦值使用Let,Let 可以省略。
給對象變量賦值使用Set,Set 不能 省略。
Sub AssignString()
Dim strA As String
Dim strB As String
strA = "hello" ' 本句也可寫成 LET strA = "hello"
Set strB = "hello" ' 錯誤寫法/Compile error
EndSub
VBA編程神器 VBA代碼助手 可以極大提高編程速度,降低編程門檻歡迎使用
私信回復 代碼助手 即可獲得
用法 輸入 字典+空格 即可看到如下提示 也可輸入 dic+空格 zd+空格 均可得到提示
本提示資料庫可完全自定義!
更多功能請大家探索