【发布时间】:2013-01-22 21:16:29
【问题描述】:
我整天都在想办法解决这个问题。这是我需要完成的:
- 使用 GetFile 选择多个工作簿而不打开它们。
- 逐个循环比较选定工作簿的单元格 A2 与参考工作簿。
- 如果所选工作簿的单元格 A2 等于 A 列中包含的参考工作簿中数值的数值,则将匹配的参考工作簿单元格的相应单元格中的 B 列文本复制/粘贴到所选工作簿的 M2 中。
听起来很复杂,但让我来演示一下。字母代表列名。
选定的工作簿 A2=12 M2= ""
参考工作簿 A2=12 B2=牛奶、蛋白质
期望的结果:
选定的工作簿
A2=12 M2=牛奶、蛋白质
到目前为止,这是我拥有的代码:
Sub Click()
Dim rCell As Range, vVal1, vVal2
Dim wbCheck As Workbook
For Each rCell In Workbooks("2.xls").Worksheets(1).Range("A1:C100")
vVal1 = rCell
vVal2 = ThisWorkbook.Worksheets(1).Range(rCell.Address)
If IsNumeric(vVal1) And IsNumeric(vVal1) Then
If vVal1 = vVal2 Then
rCell.Interior.ColorIndex = 3
ElseIf vVal1 < > vVal2 Then
End If
End If
Next rCell
End Sub
【问题讨论】:
-
MS Access 的故事在哪里?另外,您在哪里遇到问题?
-
如果您的参考值在 A 列中,为什么还要比较 B 和 C 列中的值?在您的示例代码中是
ThisWorkbook“参考”工作簿? -
两张表中的单元格是否连续?如果是这样,您可以将数据保存到数组并进行比较,然后将完整转储到新工作表。
-
@蒂姆。我不能透露你的问题的原因
-
@Remou 与 Tim 相同的消息