Macros 在宏中使用列标题映射列

Macros 在宏中使用列标题映射列,macros,Macros,我有两张工作表。我必须根据列名将值从第二个工作表复制到第一个工作表。 对于从G列到C列的应对策略数据,我使用- 如果Wks2.Range(“C”和I)Wks.Range(“G”和J).值,则 Wks2.范围(“C”和I).值=Wks.范围(“G”和J) 如果结束 但这里的问题是,列序列在secong one中不断变化。所以映射不能硬编码在列字母表上。 我不知道如何使用列标题映射它们。 提前谢谢。您可以在标题中搜索ColumnName。找到匹配项后,检索其行作为引用 Dim cellRef作为整数

我有两张工作表。我必须根据列名将值从第二个工作表复制到第一个工作表。 对于从G列到C列的应对策略数据,我使用- 如果Wks2.Range(“C”和I)Wks.Range(“G”和J).值,则 Wks2.范围(“C”和I).值=Wks.范围(“G”和J) 如果结束

但这里的问题是,列序列在secong one中不断变化。所以映射不能硬编码在列字母表上。 我不知道如何使用列标题映射它们。
提前谢谢。

您可以在标题中搜索ColumnName。找到匹配项后,检索其行作为引用

Dim cellRef作为整数 Set e=工作表(2).行(1).查找(ColumnName)
如果不是,则e为零
cellRef=e。列
如果正常,则结束

因此,假设您的列名位于工作表(2)的第1行=wks2
您必须找到columnName的字母(这里是“C”)
SearchColumn:想要的columnname
将e变暗为对象
设置e=无
设置e=wks2.范围(“1:1”).查找(搜索列)
如果不是,则e为零
Dim colAddress作为字符串
colAddress=e.Address
作为字符串的Dim colLetter
colLetter=Mid(colAddress,2,InStr(2,colAddress,“$”,vbTextCompare)-2)
如果Wks2.Range(colLetter&I)Wks.Range(“G”&J).值,则
Wks2.Range(colLetter&I).Value=Wks.Range(“G”&J)
结束
否则
msgbox(“找不到”&搜索列)
如果结束

如果结束

首先,我们找到(e)列 e、 address返回找到的列地址 然后colLetter存储它的列字母

有任何问题请通知我


C

我不知道它如何适合我的剧本。你能把它和我上面的例子联系起来吗。