【发布时间】:2021-06-03 00:07:20
【问题描述】:
我正在尝试在 VBA 中实现以下自动化。我有不同的表格,但标题错误。我有另一个名为“HeadersMap”的工作表,其中包含所有工作表正确标题的列表。我想要做的是,如果我打开一个“Sheet1”,那么代码应该转到“HeadersMap”工作表>检查“SheetNames”列中打开的工作表名称>检查“OriginalHeaders”列中的原始标题并复制正确“正确标题”列中的标题名称,并替换“Sheet1”中的标题。同样,如果我打开“Sheet2”,它也应该这样做。
“表 1”
| A | B | C | |
|---|---|---|---|
| 1 | aplpe | baanann | Roange |
| 2 | |||
| 3 |
表格“标题图”
| A | B | C | |
|---|---|---|---|
| 1 | SheetNames | OriginalHeaders | CorrectHeaders |
| 2 | Sheet1 | aplpe | Apple |
| 3 | Sheet1 | baanann | Banana |
| 4 | Sheet1 | Roange | Orange |
| 5 | Sheet2 | sgura | Sugar |
| 6 | Sheet2 | Jggaery | Jaggery |
| 7 | Sheet3 | Dtergetn | Detergent |
| 8 | Sheet3 | poas | Soap |
| 9 | Sheet3 | Lfua | Lufa |
所需结果“SHEET1”
| A | B | C | |
|---|---|---|---|
| 1 | Apple | Banana | Orange |
| 2 | |||
| 3 |
【问题讨论】:
-
何时创建工作表,或何时(每次)选择工作表?
-
@ChristoferWeber 当我在包含工作表“HeadersMap”的工作簿中导入此“Sheet1”时。所以有不同的工作表,如.. Sheet1、Sheet2、Sheet3 等。其中有错误的标题。我想在导入时选择 Sheet1 并比较 "HeaderMaps" 中的标题名称,替换名称并将 Sheet1 保存为正确的标题!
-
所以你有一个带有“HeadersMaps”工作表的工作簿,然后你从另一个工作簿导入一个新工作表?如果它被称为“Sheet1”,我们应该在 HeadersMaps 中查找 Sheet1 并替换标题,等等 Sheet2 或其他任何东西,只要名称存在于 HeadersMaps 中?我们是完全关心 OriginalHeaders,还是只是将 CorrectHeaders 复制到工作表中?
-
@ChristoferWeber 是的。而且我们根本不关心OriginalHeaders,需要将正确的Headers复制到Sheet中