我有一个主要工作簿用作时间表。我有一个不同的“请求”excel工作簿表单,客户发送给我填写。我想有一个宏将客户表单中的一行复制到我的主工作簿中。在我的主工作簿中,我想手动输入一个新行,选择该行,然后客户工作簿中的数据将填入所选行。我有许多客户表单,并希望宏从我当时打开的任何客户表单中提取数据。我不希望宏自动插入新行,因为我的日程表工作簿格式化的方式。有谁知道如何做到这一点?
谢谢!
编辑:我试图运行一个初始宏,这是代码:
Sub Macro1()
'
' Macro1 Macro
'
'
Windows("TEST - Tool Move Request Form.xlsx").Activate
Range("B12:K12").Select
Selection.Copy
Windows("TEST - Ocotillo Site Tool Move Schedule.xlsx").Activate
Range("A26").Select
ActiveSheet.Paste
Range("E32").Select
End Sub
答案 0 :(得分:0)
Private Sub Macro1()
Dim x As Workbook
Dim y As Workbook
Dim PrevRow As Long
'Workbook From - Take the path
Set x = Workbooks.Open("C:\TEST - Tool Move Request Form.xlsx")
'Workbook To - Take the path
Set y = Workbooks.Open("C:\TEST - Ocotillo Site Tool Move Schedule.xlsx")
'Find the last row and move to the next row
PrevRow = y.Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row + 1
'Take the sheet you're going to, and add corresponding value
y.Sheets("Sheet1").Range("A" & PrevRow).Value = x.Sheets("Sheet1").Range("B12")
y.Sheets("Sheet1").Range("B" & PrevRow).Value = x.Sheets("Sheet1").Range("C12")
y.Sheets("Sheet1").Range("C" & PrevRow).Value = x.Sheets("Sheet1").Range("D12")
y.Sheets("Sheet1").Range("D" & PrevRow).Value = x.Sheets("Sheet1").Range("E12")
y.Sheets("Sheet1").Range("E" & PrevRow).Value = x.Sheets("Sheet1").Range("F12")
y.Sheets("Sheet1").Range("F" & PrevRow).Value = x.Sheets("Sheet1").Range("G12")
End Sub