【发布时间】:2018-09-27 00:45:32
【问题描述】:
我正在尝试匹配两个单独工作表中的 2 列,然后将工作表 2 中的数据填充到工作表 1 中。
我需要将 A 列(工作表 2)与 D 列(工作表 1)匹配。一旦匹配,我需要用 B 列(工作表 2)中的数据填充 F 列(工作表 1)。填充数据后,我还想根据存在的数据更改 F 列(工作表 1)的颜色。 Worksheet 1 Worksheet 2
【问题讨论】:
标签: vba excel excel-formula
我正在尝试匹配两个单独工作表中的 2 列,然后将工作表 2 中的数据填充到工作表 1 中。
我需要将 A 列(工作表 2)与 D 列(工作表 1)匹配。一旦匹配,我需要用 B 列(工作表 2)中的数据填充 F 列(工作表 1)。填充数据后,我还想根据存在的数据更改 F 列(工作表 1)的颜色。 Worksheet 1 Worksheet 2
【问题讨论】:
标签: vba excel excel-formula
把这个放在 F2 的 Sheet 1 上,将工作表名称 Sheet2 更新为第二张工作表的名称,然后复制下来:
=VLOOKUP($D2,Sheet2!$A:$B,2,FALSE)
然后您可以将条件格式应用于工作表 1 上的 F 列。
如果表 1 中的值可能不在表 2 中,这将处理错误:
=IFERROR(VLOOKUP($D2,Sheet2!$A:$B,2,FALSE),"Not Found!")
[更新了有关跨工作簿的其他问题]
对于另一个打开的工作簿,使用以下内容并将[Book2] 替换为第二个工作簿的路径或打开的工作簿的名称:
=IFERROR(VLOOKUP($D2,[Book2]Sheet2!$A:$B,2,FALSE),"Not Found!")
另请注意,如果您在公式栏中构建公式时手动选择它们,Excel 将自动构建所有引用:Excel Formulas Overview on MSDN
【讨论】:
=VLOOKUP($D2,[C:\...\Book2.xlsx]Sheet2!$A:$B,2,FALSE),其中“C:\...\”是工作簿的实际路径。这将创建一个必须更新的链接,通常是在打开工作簿时。并且用户需要有权访问该路径。如果您从一个已经打开的工作簿进行配置,那么=VLOOKUP($D2,[Book2]Sheet2!$A:$B,2,FALSE) 其中Book2 是第二个工作簿的名称,将起作用;它将找出路径的其余部分(如果它是保存的工作簿。)
=SUBSTITUTE(IFERROR(VLOOKUP($D2,[Book2]Sheet2!$A:$B,2,FALSE),"Not Found!"),"Lend","L")
需要更多信息才能为您提供准确的代码,但这是一个好的开始
'假设每个工作表有10行
dim i as integer
dim j as integer
for i = 1 to 10
for j = 1 to 10
if sheet1.cells(i,4).value = sheet2.cells(j,1).value then
sheet1.cells(i,6).value = sheet1.cells(j,2).value
sheet1.cells(i,6).interior.color = vbyellow
end if
next j
next i
颜色也可以用rgb函数控制,只需将上面代码中的vbyellow替换掉即可:
例如 rgb(255,204,255) 将是浅粉色
【讨论】: