你能给Excel中的列一个变量名吗?

Bra*_*rad 4 excel vba excel-vba

我有一个相当大的Excel电子表格,有大约4500行,35列.

我们的VBA代码在修改字段值时按字母(又名A1,A2,A3 ... A4500)引用列...这是一个限制,因为我们无法在工作表中移动列而无需更新所有代码到该列移动到的位置.

是否可以为列提供变量名称?

如果列A当前成立First Name,是否可以命名此列,First_Name以便无论此列移动的位置如何,它都会保留First_Name引用?

那么在我们的VBA代码中我们可以说First Name而不是A1

谢谢!

小智 8

最简单的方法是标注(35)与列号或列号对应的变量或枚举.

Option Explicit

Public Const Name As String = "A"
Public Const Age As String = "C"
Public Const ID As String = "F"
...
Run Code Online (Sandbox Code Playgroud)

然后在引用列时使用定义的名称即. Range(Name & 13).

这样,您只需要在public const列的顺序更改时修改蚂蚁.

如果您按数字引用列,请考虑使用Enum

Public Enum Col
    Name = 1
    ID = 2
    Age = 3
End Enum


Sub Main()
    Cells(1, Col.ID) = "ID HEADER"
End Sub
Run Code Online (Sandbox Code Playgroud)

  • + 1好的并祝贺10k;) (2认同)