在宏中使用列标题映射列

  • 本文关键字:标题 映射 macros
  • 更新时间 :
  • 英文 :


我有两个工作表。我必须根据列名将值从第二个工作表复制到第一个工作表。对于G至C列的应对数据,我使用-如果Wks2.范围("C"&I)<>Wks.Range("G"&J).Value ThenWks2.范围("C"&I).Value=Wks.Range("G"&J)如果结束

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

您可以在Header中搜索ColumnName。找到匹配项后,检索其行作为参考,

将cellRef标注为整数Set e=工作表(2).行(1).fund(ColumnName)
如果不是e,则
cellRef=e.列
如果

结束

好。

因此,假设您的列名位于工作表的第1行(2)=wks2
你必须找到columnName的字母(这里是"C")
SearchColumn:需要的列名
Dime As对象
设置e=无
设置e=wks2。范围("1:1")。查找(SearchColumn)
如果不是e,则
将colAddress分为字符串
colAddress=e.Address
将colLetter变为字符串
colLetter=Mid(colAddress,2,InStr(2,colAddress,"$",vbTextCompare)-2)
如果Wks2.Range(colLetter&I)<>Wks.Range("G"&J).Value Then
Wks2.范围(colLetter&I).Value=Wks.Range("G"&J)
结束
否则
msgbox("找不到"&SearchColumn)
如果结束

如果结束

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

如有任何问题,请通知我

C

最新更新