我需要根据编号格式将数据从1 excel移动到另一个excel。举一个例子我已经样品TEST1 Excel作为每下面:Excel VBA - 基于编号移动数据
test1.xlsx
EName| Sal | ID | Tel | Add | Depart | Pos |
------------------------------------------------------------
John | 10000 | 123| NA | NY | Finance | Manager |
------------------------------------------------------------
1 | 5 | 2 | | | 3 | 4 |
列布置在数字。在这种情况下,我需要将我的数据移动到另一个excel test2并粘贴编号格式。
test.xlsx
Name | ID | Department | Level |Position | Salary |
1 | 2 | 3 | | 4 | 5 |
John | 123| Fiinanace | NA |Manager | 10000 |
值用于由编号标识每一列。 我该如何做到这一点。任何建议/参考非常感谢。谢谢
Sub startGenerateExcel()
Path1 = Range("F4").Value
Path2 = Range("F6").Value
Dim wbSource As Workbook
Dim wbDest As Workbook
Dim rngSource As Range
Dim rngDest As Range
Dim colNum As Integer
Dim colDest As Integer
Dim cl As Range
Set wbSource = Workbooks(Path1)
Set wbDest = Workbooks(Path2)
Set rngSource = wbSource.Sheets("Sheet1").Range("A1:G3") 'Modify as needed
Set rngDest = wbDest.Sheets("Sheet1").Range("A1:F3") 'Modify as needed
For Each cl In rngSource.Rows(2)
colNum = cl.Offset(1, 0).Value
colDest = Application.Match(colNum, rngDest.Rows(3), False)
rngDest.Cells(2, colDest).Value = cl.Value
Next
End Sub
为什么不直接使用公式引用回到原来的表新表?新工作表第1列中的公式将引用旧工作表中的名称列,第2列中的公式将引用id列等。将公式复制到数据底部后,只需复制公式块并将其作为值粘贴到位。如果无论出于何种原因,您必须在VBA中执行此操作,请考虑“数组”。 – chuff
@chuff我不允许编辑输出文件。输出文件不应包含任何公式或任何宏。我创建另一个Excel文件,用户需要为输入文件提供路径。 –