2016-06-21 78 views
0

我正在嘗試將數據從一個Excel工作表集成到另一個工作表中。 CompanyName是表單1的主要源鍵,其他工作表的PKEY是Company_Name。我試圖編寫一個宏,根據工作表1中的公司名稱在工作表2中找到公司名稱。然後將工作表1中的行復制到工作表2中的匹配行。如何集成數據VBA

Sub Method1() 

Dim PKEY As String 
Dim CompanyName As Missed_Macro_Info.CompanyName 
Dim Company_Name As Filtered_Suspect_Sheet.Company_Name 
Set PKEY = Range("D2:D513") 

CompanyName = Missed_Macro_Info1.company.FindByCompanyName("PKEY") 

For a = PKEY To 1 Step -1 

    If CompanyName.Value = Company_Name.Value Then 
     Copy (CompanyName.Row) 
     Paste (Company_Name.Row) 
    Else 
    End If 


End Sub 

我在

Dim CompanyName As Missed_Macro_Info.CompanyName 

收到錯誤是「沒有定義的用戶定義類型」如果將這個更容易用戶VLOOKUP請讓我知道,我不熟悉VBA 。

+0

當你使用vim定義一個變量來指定它的類型時,類型可以被內置到vba中(字符串,整數,雙精度)或者它們可以是由插件定義的對象(範圍,工作簿,工作表)。 Missed_Macro_Info不是一個有效的類型。 查看內置類型以瞭解「dim變量作爲類型」的含義: https://msdn.microsoft.com/en-us/library/47zceaw7.aspx –

回答

0

非常困惑你的代碼。當一個人寫Dim foo as Lib1.Class1Lib1是圖書館,Class1是這個班。所以人們會寫Dim ws as Excel.Worksheet來定義一個工作表變量,這裏的Worksheet類駐留在Excel庫中。通過轉到窗口頂部的菜單欄並選擇工具 - >參考,然後從包含其他工作簿的庫列表中進行選擇,可以在Excel VBA IDE中添加對庫的引用。

我需要知道更多。你有其他工作簿嗎? Missed_Macro_Info需要是一個這樣打開的工作簿的VBA項目名稱;如同Filtered_Suspect_Sheet。可以通過單擊根節點來重命名VBA IDE項目瀏覽器中的VBA項目,然後右鍵單擊以獲取上下文菜單並選擇VBAProject屬性來獲取對話窗口。

你從哪裏得到這段代碼?

沒有引用這樣的項目是導致編譯錯誤的原因。

+0

我盡了最大努力將我想要做的與我在此處找到的內容聯繫起來:https://msdn.microsoft.com/en-us/library/y06xa2h1.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1 – Brayheart

+0

你能告訴我一個準備腳本的方法嗎?我無法理解如何正確使用FindBy運算符 – Brayheart

+0

msdn的參考資料是VB.Net,您已在VBA論壇發佈。 –