0

这是我的困境。

我有两张工作表,一张有客户的名字,一张我想根据城市复制名字。

例如:

与每列关联的是姓氏、名字和城市。我有数百个与不同城市相关联的名字,我希望从 worksheet1.xls 将所有纽约客户复制到 worksheet2.xls,无论是当我打开 worksheet2 还是通过宏时,这都更容易,因为姓氏在一个单元格中第一个名字在另一个我必须复制两者。

我看到可以将单元格从一个工作表链接到另一个工作表,然后根据标准进行 vlookup。这是最简单的方法还是有其他方法?

4

2 回答 2

0

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

  • 停用闪烁应用程序.ScreenUpdating
  • LastName 和 FirstName 作为数组,以添加更多数据并避免许多窗口更改
  • 使用openclose直接打开 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

希望这可以帮助

此致

艾伦

于 2011-08-03T21:55:36.113 回答
0

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

就像是

SELECT * FROM worksheet1.xls WHERE City=YourChoice

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

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

于 2011-02-18T20:20:22.790 回答