2010-06-08 55 views
0

这是我的困境。Vlookup到另一个工作簿

我有两个工作表,一个客户名称和一个我想复制名称以取决于城市。

例如:

与每列相关的是姓,名和城市。 我有数百名与不同城市相关的名字,我想从worksheet1.xls中将所有纽约客户端复制到worksheet2.xls,当我打开worksheet2或通过宏时,更容易,因为姓氏在一个细胞和第一个名字是在另一个我将不得不复制两个。

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

+0

很难说,因为我需要它,当我打开它做的事。 我想出了另一种避免宏的解决方案。 这是我想出来的,但完全不同于原来的帖子,仍然很难。 我有三个文件;一个与名字,相同的名字和他们的城市和结果。 result.xls我将名称与name.xls链接起来,然后我尝试从result.xls的名称上查看city.xls以获取其城市条件。 是否可以在另一个工作表上执行vlookup? = VLOOKUP(D2,'[city.xls] Users'!$ D:$ D,2,FALSE) 这是我的公式不起作用 – 2010-06-08 19:47:41

回答

0

执行此操作的一种方法是在工作表2中添加一个远程数据引用,用于查询工作表1。
然后当你打开worksheet2刷新数据,以得到worksheet1最新

喜欢的东西

SELECT * FROM worksheet1.xls WHERE City=YourChoice 

这不是一个语法正确的查询,使用查询编辑器来帮助你建立了

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

0

我可以offser该宏为答案,它具有以下的改进余地:

  • 停用闪烁application.ScreenUpdating
  • 名字和姓为阵列,以增加更多的数据和避免很多窗口变化
  • 使用打开关闭直接打开excel,而不是以前o钢笔。

这是代码

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 

希望这有助于

问候

阿伦

相关问题