【发布时间】:2013-07-26 17:21:08
【问题描述】:
我需要根据编号格式将数据从 1 个 excel 移动到另一个 excel。例如,我按照以下示例 test1 excel:
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 我不允许编辑输出文件。输出文件不应包含任何公式或任何宏。我正在创建另一个 excel 文件,用户需要在其中提供输入文件的路径。