我已经建立了一个Excel文件,将其他工作簿中的数据粘贴到该文件中sheet 1
,sheet 2
然后通过使用设置为显示某些值
A1 =IF(NOT(ISBLANK(Sheet1!B1)),Sheet1!B2,"")
整个工作表(单元格引用根据我的需要而变化)。
通常这对我来说是很好的问题,问题是有时当我下载新的原始数据并复制到时sheet 1
,sheet 1
由于添加了随机的新列以及我sheet 2
设置的中断公式,列中的列向我移动了只是引用我选择的工作表1中的相应列,而不是引用我需要的实际数据。
下面是一个示例:
工作表1(第1天)(只需将原始数据复制到我的工作簿中)
| A | B | C | D | E | F |
--+-------+-------+-------+-------+-------+-------+
1 | Cat 1 | Cat 2 | Cat 3 | Cat 4 | Cat 5 | Cat 6 |
2 | 1A | 1B | 1C | 1D | 1E | 1F |
3 | 2A | 2B | 2C | 2D | 2E | 2F |
4 | 3A | 3B | 3C | 3D | 3E | 3F |
第2页(第1天)(使用前面提到的公式进行所需的输出)
| A | B | C |
--+-------+-------+-------+
1 | Cat 2 | Cat 6 | Cat 4 |
2 | 1B | 1F | 1D |
3 | 2B | 2F | 2D |
4 | 3B | 3F | 3D |
工作表1(第2天)(第二天左右复制原始数据)
| A | B | C | D | E | F | G |
--+-------+-------+-------+-------+-------+-------+-------+
1 | Cat 1 |Random | Cat 2 | Cat 2 | Cat 4 | Cat 5 | Cat 6 |
2 | 1A | 1X | 1B | 1C | 1D | 1E | 1F |
3 | 2A | 2X | 2B | 2C | 2D | 2E | 1F |
4 | 3A | 3X | 3B | 3C | 3D | 3E | 1F |
工作表2(第2天)(由于出现新的不需要的列而导致输出)
| A | B | C |
--+-------+-------+-------+
1 |Random | Cat 5 | Cat 3 |
2 | 1X | 1E | 1C |
3 | 2X | 2E | 2C |
4 | 3X | 3E | 3C |
由于我要处理的数据超过100列,有时要处理近2万行,因此我每次在工作表2中获取新数据时都无法搜索工作表1中更改的列或修改公式。
所以我的问题是,有人可以建议一种在Excel中编写宏的方法,以便在工作表1的第1行中搜索文本值,复制包含该值的整个列,然后将整个列粘贴到sheet 2
吗?我对在Excel中使用公式非常有信心,但对宏几乎一无所知,并希望获得一些帮助。
您可以尝试使用此宏吗: 子Macro1() ' 'Macro1宏 ' 暗单元格范围 对于i = 1至50 Sheets(“ Sheet1”)。Select 如果Cells(1,i).Value =“ Cat 2”,则 列(i)。选择 选择复制 Sheets(“ Sheet2”)。Select 范围(“ A1”)。选择 ActiveSheet.Paste 万一 如果Cells(1,i).Value =“ Cat 6”,则 列(i)。选择 选择复制 Sheets(“ Sheet2”)。Select 范围(“ B1”)。选择 ActiveSheet.Paste 万一 如果Cells(1,i).Value =“ Cat 4”,则 列(i)。选择 选择复制 Sheets(“ Sheet2”)。Select 范围(“ C1”)。选择 ActiveSheet.Paste 万一 接下来我 结束子
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句