分享

【整理】VBA学习笔记(25)工作表函数和VBA,对EXCEL对象的不同引用写法

 hdzgx 2019-11-05

1 工作表函数 对 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
  • 当然这内部符号VBA的语法都算,比如 worksheets() 可以替换为  sheet1 或 sheets(1)等写法

 

2.2 最简单写法

  • 最简写法:但不支持任何变量
  • 写法就是 EXCEL写法,外面加 [ ]
  • 千万不要混用,外面是[] 里面是纯excel写法
  • [b1]=[sum(a1:a10)]
  •  
  1. Sub test1002()
  2. [h1] = [sum(a1:a10)]
  3. End Sub

 

2.3 混合型写法--错误

混合型

EXCEL的部分加引号   ""

 

2.4 部分拼接的写法是OK的

  • 不支持混用,只支持部分拼接的生效
  • 外面的部分用VBA语法
  • 里面“”部分用excel语法
  • 拼接的写法是OK的,下面这两种拼接都是等价的

       sheet1.range("a1:a10")
       range("sheet1!A1:A10")

 

  1. Sub test1002()
  2. Debug.Print [sum(a1:a10)]
  3. Debug.Print WorksheetFunction.Sum(Range("sheet3!a1:a10"))
  4. Debug.Print WorksheetFunction.Sum(Range("[cs100.xlsx]sheet3!a1:a10"))
  5. End Sub

 

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")

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多