宏以从打开的工作簿表单中填充主工作簿中的空白选定行

时间:2017-07-06 16:22:26

标签: excel vba excel-vba

我有一个主要工作簿用作时间表。我有一个不同的“请求”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

1 个答案:

答案 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