vba - 从已关闭的工作簿中复制数据并粘贴(如果它们的数据相同)
问题描述
我是一家公司的实习生,基本上成为了技术支持(虽然比咖啡机更好)所以我试图让一个封闭的工作簿将数据复制到一个开放的工作簿中到目前为止这是我得到的代码,但我' 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。
解决方案
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
您的要求并不完全清楚,如果可能的话,我也会避免循环。
推荐阅读
- javascript - 在最大宽度的 div 中拉伸 div 以响应地视口全宽?
- callback - 如何在颤振小部件树内部调用 homepage.dart void 函数?
- file - 如何从 perl 脚本中的文件中删除所有换行符?
- pygame - 如何让我的排行榜出现在我的游戏中而不是在 python shell 上?
- python - 数据标签:Python
- node.js - 带有 Docker 的 Node Js 项目抛出没有这样的文件或目录 /var/www/package.json 的错误
- actionscript-3 - Actionscript - 带有外部文本文件的 TLFTextField,文件运行时不显示任何内容
- sql - 使用带有 SUM 和 GROUP BY 的完整 JOIN 避免重复条目
- javascript - 无法通过 async:true 获得 XMLHttpRequest 响应
- typescript - 在打字稿中进行柯里化时反向传播类型推断