尝试从一个工作簿到另一个工作簿的值
Sub CopyValues()
'Current Workbook 1
Dim B As Worksheet: Set bun = Sheets("Workbook1Sheet1")
'Since Workbook 2 is open
'Getting a type mismatch error on this line, please note the workbook is open
Dim wkb2 As Workbook: Set wkb2 = "Workbook2.xls"
Dim x As Integer
x = 3
B.Range("E" & x).Value = "=vlookup(D3,'wkb2'A!$D:$F,3,0)"
End Sub
答案 0 :(得分:4)
使用Set x = ....
时,您正在设置对象。
因此,Set Wkb2 = "..."
不起作用,因为您正在分配字符串。
安贝回答了你的问题。它有效,因为WorkBooks("...")
为您提供了一个对象
答案 1 :(得分:2)
尝试将公式赋值为
B.Range("E" & x).Formula = "=vlookup(D" & x & ", [Workbook2.xls]Sheet1!$D:$F, 3, false)"
一旦您使用Set wkb2 = Workbooks("Workbook2.xls")
分配了第二个工作簿,就无法在带引号的字符串中使用 wkb2 ,并且您需要一个工作表以及一个单元格范围。
答案 2 :(得分:0)
B.Range("E" & x).Value = "=vlookup(D3,'wkb2'A!$D:$F,3,0)"
你想要它
B.Range("E"&x).Value = "=vlookup(D3,'" & wkb2 & "'A!$D:$F,3,0)"
确保wkb2也声明了工作簿和工作表。