Vlookup到另一个工作簿

时间:2010-06-08 03:18:08

标签: excel worksheet-function

这是我的困境。

我有两个工作表,一个有客户名称,另一个我想根据城市复制名称。

例如:

与每列相关联的

是姓氏,名字和城市。 我有几百个与不同城市相关联的名称,我希望从worksheet1.xls将所有纽约客户端复制到worksheet2.xls,或者当我打开工作表2或通过宏时更容易,因为姓氏在一个单元格中并且第一个名字在另一个我必须复制它们。

我看到可以将单元格从一个工作表链接到另一个工作表,然后根据条件执行vlookup。这是最简单的方式还是另一种?

2 个答案:

答案 0 :(得分:0)

执行此操作的一种方法是在工作表2中添加查询工作表1的远程数据引用 然后,当您打开工作表2时,刷新数据以从工作表1获取最新信息

这样的东西
SELECT * FROM worksheet1.xls WHERE City=YourChoice

这不是语法上正确的查询,使用查询编辑器来帮助您构建它

如果您需要帮助,请提供您正在使用的Excel版本。

答案 1 :(得分:0)

我可以将这个宏作为答案,它有以下改进空间:

  • 停用闪烁 application.ScreenUpdating
  • LastName和FirstName为数组,用于添加更多数据并避免许多窗口更改
  • 使用打开关闭直接打开Excel,而不是先前打开。

这是代码

Option Explicit

Sub Macro1()
'
' Macro1 Macro
'
Dim City As String
Dim FirstName As String
Dim LastName As String

City = Range("B4").Value 'B4 cell where city is
Range("C4").Select 'C4 cell where name is pasted

'go to the book, shhet and firs range with names
Windows("book_with_cities.xlsx").Activate
Sheets("year2011").Select
Range("A4").Select 'where  the data start
'main copy loop
Do While ActiveCell.Value <> ""
    'if is the city I´m lookin for copy the data to my excel of results
    If ActiveCell.Value = City Then
        LastName = ActiveCell.Offset(0, 1).Value
        FirstName = ActiveCell.Offset(0, 2).Value
        Windows("book_with_results.xlsx").Activate
        Sheets("Your_city_data").Select
        ActiveCell.Value = LastName
        ActiveCell.Offset(0, 1).Value = FirstName
        ActiveCell.Offset(1, 0).Select
        Windows("book_with_cities.xlsx").Activate
        Sheets("year2011").Select
    End If
    ActiveCell.Offset(1, 0).Select
Loop
'going back to your sheet
Windows("book_with_results.xlsx").Activate
Sheets("Your_city_data").Select

End Sub

希望这有帮助

最好的问候

阿伦