我在MS Excel文件的第一个工作表上有一个表。如果我创建一个新的工作表,我想用第一个工作表中的表中的某些行和列填充它。
具体来说,如果我在第一个工作表中有下表:
________________________________________________________
| Header 1 | Header 2 | Header 3 | Header 4 | Header 5 |
-------------------------------------------------------
| Data | Data | Data | Data | Data |
--------------------------------------------------------
| Data | Data | Data | Data | Data |
--------------------------------------------------------
| Data | Data | Data | Data | Data |
--------------------------------------------------------
| Data | Data | Data | Data | Data |
--------------------------------------------------------
| Data | Data | Data | Data | Data |
--------------------------------------------------------
然后我点击一个新的工作表,我应该自动出现以下内容:
__________________________________
| Header 1 | Header 4 | Header 5 |
----------------------------------
| Data | Data | Data |
----------------------------------
| Data | Data | Data |
----------------------------------
| Data | Data | Data |
----------------------------------
| Data | Data | Data |
----------------------------------
| Data | Data | Data |
----------------------------------
有关如何实现这一目标的任何指示?我想避免创建宏,因为我不熟悉VB中的编程。但如果这是唯一的选择,我愿意去探索它。
答案 0 :(得分:1)
您必须使用宏。在ThisWorkbook
(请参阅快照)中,粘贴此代码
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Dim ws As Worksheet
'~~> This is where you set the input sheet
Set ws = Sheet1
'~~> the range that you need to replicate
ws.Range("A1:A5,D1:E5").Copy
'~~> I am doing paste special values
'~~> Change it to `xlPasteAll` if you need formats to be copied as well
Sh.Range("A1").PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub
<强>快照强>
假设您在Sheet1中有此数据。
现在,每次添加工作表时,数据都将复制到新工作表中。
必须在此处粘贴代码
注意强>:
此方法的最大缺点是您将丢失撤消列表。
答案 1 :(得分:0)
如果你想避免使用宏,你会发现索引,匹配和行功能组合的解决方案。
=Match(ColumHeader2,ColumHeaders1,0)
将为您提供Sheet1
中的列=Index(Sheet1!A1,Row(Sheet2!CellRef),Match(ColumHeader2,ColumHeaders1,0))
为您提供要转换为工作表2的值
您想要转置数据的单元格的 CellRef = address
。
sheet2!A2
中的公式如下:
=INDEX(Sheet1!$A$1:$F$11,ROW(Sheet2!A2),MATCH(A$1,Sheet1!$A$1:$F$1;0))
Sheet1!$A$1:$F$11
=数据范围包括sheet1中的标题
Sheet1!$A$1:$F$1
=标题范围在sheet1
只需将公式复制到sheet2中可能包含转置值的所有单元格。