excel - Excel VBA:如何在“@”处用商业写列名
问题描述
我试图找出我应该如何处理一个命名列,myTable
其中在其名称中包含一个广告 at ( @
),例如active @ mail
。此代码应该在立即输出窗口中打印列号:
Sub teststring()
Dim s As String
s = ActiveSheet.Range("myTable[active @ mail]").Column
Debug.Print s
End Sub
但它失败了。使用.Range("myTable[active" & Chr(64) "& mail]")
也失败。
解决方案
你可以这样做:
s = ActiveSheet.listobjects("myTable").listcolumns("active @ mail").Range.Column
另请参阅https://support.office.com/en-us/article/using-structured-references-with-excel-tables-f5ed2452-2337-4f71-bed3-c8ae6d2b276e 了解如何转义特殊字符
所以:
s = ActiveSheet.Range("myTable[active '@ mail]").Column
也将工作。
@
在结构化引用中具有特殊含义,因此您不能在列名中使用它而不用'
(单引号)转义它
推荐阅读
- javascript - 如何让这个应用程序使用当前文本框值,即点击次数,更改 div 中的图像?
- vue.js - 如何使用子文件夹中的路由器设置 vue 3
- python - 当键/值的顺序不同时,如何将 Python 字典写入 CSV?
- c++ - 从 txt 文件中读取双精度值并将它们存储在动态分配的内存中
- python - 我如何把它变成一个while循环程序?
- python - 如何将 Altair 图从一个 Flask 路由传递到另一个?
- python - 使用 Sift 计算 python 计算描述符
- javascript - this.props.navigation.state.params 在 React Native 中未定义
- javascript - 获取输入框中的文本
- python - 如何修复 Python 中的错误(TypeError:需要类似字节的对象,而不是“str”)