【发布时间】:2015-01-21 10:40:57
【问题描述】:
VBA 新手,我试图在工作表上查找列标题到另一个,如果匹配则复制数据...
有人告诉我,我可以将标题存储在字符串数组中,然后循环遍历并将标题与我的数组进行比较以查看它们是否匹配。
ie: For each c In
Sheet1.Range("A1:BA1").offset(rownumber -1)
但我不确定这意味着什么?如何将标题存储在字符串数组中?对不起,如果这是一个超级基本的问题。我用谷歌搜索了它,但没有找到任何解释如何执行此操作或它的含义的信息。
我的项目: sheet1 上的研究数据。如果出现问题,我想单击一个按钮,该按钮将仅将匹配的列数据复制到指定工作表中的新行。从那里查看数据,然后再按另一个按钮将数据导出到 MS SQL 表。
即:
Sheet1
A B C D E
ID CUR Region Amount Y/N
1 USD NA $54 Y
Sheet2
A B C D E
Region CUR Amount Type Misc
因此,如果列 E = Y 则将该行中的所有相关数据复制到新工作表中:
Sheet2 (output)
A B C D E
Region CUR Amount Type Misc
NA USD $54 Null Null
Sheet2 的列不在 Sheet1 中,反之亦然...而且每张工作表中的列顺序也不相同。真正的工作表很大,有很多列,每次刷新数据时行数都会改变。我需要这个循环,直到 Sheet1 中的 Col A 为空。
【问题讨论】:
-
所以为了简化;您需要检查Sheet1中的E列是否为“Y”,如果是则将该行中的数据填充到Sheet2中的相应列?两个工作表中的列会始终保持不变,还是会发生变化?
-
他们有改变的潜力。我更正了 sheet2 中的一列。