我是公司的实习生,并且基本上成为了技术支持(虽然比咖啡壶更好) 因此,我正在尝试获取一个封闭的工作簿,以将数据复制到一个开放的工作簿中。 到目前为止,这是我所拥有的代码,但是我在使用if语句时遇到了麻烦
Sub allergo()
Dim lastRow As Long
Dim bkBk1 As Workbook, wkBk2 As Workbook
Dim wkSht As Object
Dim mnt As String
lr = wkBk2.Sheets(1).Range("R" & Rows.Count).End(xlUp).Row
mnt = InputBox("Enter Filename")
Set wkBk1 = ActiveWorkbook
Set wkBk2 = Workbooks.Open("Documents\" & mnt & ".xlsx")
For Each cell In wkBk1.Sheets(1).Range(wkBk1.Sheets(1).Cells(2, "R"), wkBk1.Sheets(1).Cells(lr, "R"))
wkBk1.Sheets(1).Range("R1:R" & lr).Value = wkBk2.Sheets(1).Range("R1:R" & lastRow).Value
wkBk2.Close
End Sub
基本上,我有两个文件,它们具有相同的列,但是在几周之间行消失或出现,因为每一行都是具有特定编号的采购订单,在R行中我们添加注释,我希望在R列中添加注释复制到具有相同采购订单编号的行上的新工作簿。虽然一些注释附加到不在文件中的采购订单中,所以不再需要它们,并且某些采购订单已移动,所以我不能仅复制粘贴。 不确定If是否是一个好主意,因为它不会将我的E 146行与新工作簿的所有其他行进行比较,因此仅测试E146关闭的工作簿= E146新工作簿,而应该测试E146关闭的工作簿= E147 / E148等。
感谢您的帮助!
对于这种不确定的情况,也许VLOOKUP是可能的..
Sub strilltrying()
Dim ws As Worksheet
Set ws = Sheets("Sheet 1")
Dim lr As Long
lr = ws.Cells(Rows.Count, "B").End(xlUp).Row
Cells(lr, "R").Formula = "=VLOOKUP(E2,'H:\Documents\[OPEN ORDERS 16.07.2018.xlsx]Sheet 1'!$E:$R,14)"
End Sub
这是vlookup公式,但不能完全正常工作,因为我必须使用两个不同的变量。.我发现index + match可以做到,但我很难弄清楚。 我需要一个索引公式,以vlookup的方式比较E列和J列。
答案 0 :(得分:0)
Sub allergo()
Dim lastRow As Long
Dim bkBk1 As Workbook, wkBk2 As Workbook
Dim wkSht As Object
Dim mnt As String
lr = wkBk2.Sheets(1).Range("R" & Rows.Count).End(xlUp).Row
mnt = InputBox("Enter Filename")
Set wkBk1 = ActiveWorkbook
Set wkBk2 = Workbooks.Open("Documents\" & mnt & ".xlsx")
For Each cell In wkBk1.Sheets(1).Range(wkBk1.Sheets(1).Cells(2, "R"), wkBk1.Sheets(1).Cells(lr, "R"))
if cell = "" then 'add your clause here
wkBk1.Sheets(1).Range("R1:R" & lr).Value = wkBk2.Sheets(1).Range("R1:R" & lastRow).Value
end if
next cell
wkBk2.Close
End Sub
您的要求不是很清楚,如果可能的话,我也会避免循环。