按列号索引数组
Indexing through an array by column number
我查找了有关列属性的信息。我正在尝试在数组中执行一些信息的插入和复制。我的问题的关键是我想在循环中嵌套一些操作,所以我需要用数字而不是字母来索引列。
我做的第一件事是根据 header 名称找到起点:
Dim EnvCondCol As String
Dim EnvCondColN As Long
Dim lColVVS As Integer
lColVVS = VET_VS.UsedRange.Columns.Count ' finds last column
For n = 1 To lColVVS
If UCase(VET_VS.Cells(3, n).Value) Like "*ENVIRONMENTAL CONDITION*" Then ' All Caps when using "like"
EnvCondCol = Split(VET_VS.Cells(3, n).Address, "$")(1)
EnvCondColN = Range(EnvCondCol & 1).Column
Exit For
End If
Next n
这有效,当我观看 EnvCondCol 和 EnvCondColN 时,可以看到 EnvCondCol = "I" 和 EnvCondColN = "9"
最后,我想插入一个新列,而这一行产生语法错误:
VET_VS.Range(Columns.(EnvCondColN)).EntireColumn.Insert
我看EnvCondColN是一个数字,我试过把dim改成其他类型,比如integer
此外,我想在一个循环中将信息从一个单元格复制到另一个单元格。这会产生语法错误。
VET_VS.Range(Columns.(EnvCondColN + i)).Copy VET_VS.Range(Columns.(EnvCondColN + j))
如果我将 EnvCondColN 替换为 5 之类的值,则此方法有效。示例:VET_VS.Range(Columns.(5)).EntireColumn.Insert
为什么变量不能用作列引用?
谢谢大家的观看!
改变
VET_VS.Range(Columns.(EnvCondColN)).EntireColumn.Insert
到
VET_VS.Columns(EnvCondColN).EntireColumn.Insert
我查找了有关列属性的信息。我正在尝试在数组中执行一些信息的插入和复制。我的问题的关键是我想在循环中嵌套一些操作,所以我需要用数字而不是字母来索引列。
我做的第一件事是根据 header 名称找到起点:
Dim EnvCondCol As String
Dim EnvCondColN As Long
Dim lColVVS As Integer
lColVVS = VET_VS.UsedRange.Columns.Count ' finds last column
For n = 1 To lColVVS
If UCase(VET_VS.Cells(3, n).Value) Like "*ENVIRONMENTAL CONDITION*" Then ' All Caps when using "like"
EnvCondCol = Split(VET_VS.Cells(3, n).Address, "$")(1)
EnvCondColN = Range(EnvCondCol & 1).Column
Exit For
End If
Next n
这有效,当我观看 EnvCondCol 和 EnvCondColN 时,可以看到 EnvCondCol = "I" 和 EnvCondColN = "9" 最后,我想插入一个新列,而这一行产生语法错误:
VET_VS.Range(Columns.(EnvCondColN)).EntireColumn.Insert
我看EnvCondColN是一个数字,我试过把dim改成其他类型,比如integer
此外,我想在一个循环中将信息从一个单元格复制到另一个单元格。这会产生语法错误。
VET_VS.Range(Columns.(EnvCondColN + i)).Copy VET_VS.Range(Columns.(EnvCondColN + j))
如果我将 EnvCondColN 替换为 5 之类的值,则此方法有效。示例:VET_VS.Range(Columns.(5)).EntireColumn.Insert
为什么变量不能用作列引用?
谢谢大家的观看!
改变
VET_VS.Range(Columns.(EnvCondColN)).EntireColumn.Insert
到
VET_VS.Columns(EnvCondColN).EntireColumn.Insert