Excel VBA:如何在其中用“ @”写商业名称的列名

Zab*_*aba 3 excel vba

我试图找出应该如何处理命名列,myTable其中的名称中包含(@)处的广告,例如active @ mail。该代码应该在立即输出窗口中打印列号:

Sub teststring()
    Dim s As String
    s = ActiveSheet.Range("myTable[active @ mail]").Column
    Debug.Print s
End Sub
Run Code Online (Sandbox Code Playgroud)

但是失败了。使用.Range("myTable[active" & Chr(64) "& mail]")也会失败。

Tim*_*ams 6

您可以这样做:

s = ActiveSheet.listobjects("myTable").listcolumns("active @ mail").Range.Column
Run Code Online (Sandbox Code Playgroud)

另请参阅https://support.office.com/zh-cn/article/using-structured-references-with-excel-tables-f5ed2452-2337-4f71-bed3-c8ae6d2b276e, 以了解如何转义特殊字符

所以:

s = ActiveSheet.Range("myTable[active '@ mail]").Column
Run Code Online (Sandbox Code Playgroud)

也可以。

@在结构化引用中有特殊含义,因此您必须在列名中使用转义符'(单引号)将其转义