1 工作表函數(shù) 對 EXCEL對象的引用語法
1.1 同一個sheet里
- 在同一個sheet里
- cell range row column 層面,一般用冒號:如SUM(A:A)
- 引用 平行的多個對象,一般用逗號,如 =SUM(A1,B1,G1)
-
1.2 跨同1個workbooks的sheets
- 跨sheet,用 sheet名+感嘆號
- 這里的sheet名,就是sheet的直接看到的顯示名。(= VBA的sheet名,而不是codename!!!)
- 語法如=SUM(Sheet2!A1:A17)
1.3 跨多個workbooks
- 啥時候是有帶絕對路徑的?
- 跨多個 workbooks
- 第1部分:文件的絕對路徑,用單引號 ' ' 括起來 ,一直括到完整的路徑,到workbooks.worksheet 全括起來
- 比如 'E:\最近文件\文件1\[Resource.xlsx]ResInfo'
- 第2部分:[workbook的顯示名]
- 第3部分:sheet名字+!
- =SUM([測試200.xlsx]Sheet1!$A$1:$A$5)
- 'E:\最近文件\文件1\[Resource.xlsx]ResInfo'!$2:$2
2 VBA里對EXCEL對象標準寫法
2.1 標準寫法
- 標準寫法:Application.workbooks().worksheets().range().value
- 當然這內(nèi)部符號VBA的語法都算,比如 worksheets() 可以替換為 sheet1 或 sheets(1)等寫法
2.2 最簡單寫法
- 最簡寫法:但不支持任何變量
- 寫法就是 EXCEL寫法,外面加 [ ]
- 千萬不要混用,外面是[] 里面是純excel寫法
- [b1]=[sum(a1:a10)]
-
2.3 混合型寫法--錯誤
混合型
EXCEL的部分加引號 ""
2.4 部分拼接的寫法是OK的
- 不支持混用,只支持部分拼接的生效
- 外面的部分用VBA語法
- 里面“”部分用excel語法
- 拼接的寫法是OK的,下面這兩種拼接都是等價的
sheet1.range("a1:a10")
range("sheet1!A1:A10")
Debug.Print [sum(a1:a10)] Debug.Print WorksheetFunction.Sum(Range("sheet3!a1:a10")) Debug.Print WorksheetFunction.Sum(Range("[cs100.xlsx]sheet3!a1:a10"))
range("a1:a10") 等價 [a1:a10]
3 實測
實測
- msgbox(Application)
- application.worksheetfunction.counta(range("a:a"))
- application.sum(range("a:a"))
- application.sum([a;a])
錯誤寫法
- application.worksheetfunction.counta(a:a)
- application.worksheetfunction.counta("a:a")
- application.sum(a;a)
- application.sum("a;a")
|