2017-03-03 71 views
0

我正在創建一個宏,它將有一個驗證按鈕。這意味着,我將上傳一個現有的工作簿(與主宏相同的工作表)。如果有任何重複,我需要比較wb1和wb2表格,並最終突出顯示主宏表格上的重複項目。到目前爲止,這是我現在的,但它不允許我在Set WorkRng1 = Wb1.Sharepoint.Range(「A」& Sharepoint.Rows.Count).End(xlUp).row部分。這裏是我下面的代碼:上傳工作簿到主宏和比較工作表重複

Sub UploadandCompareSheets() 

Dim Wb1 As Workbook 
Dim wb2 As Workbook 
Dim MainPage As Worksheet 
Set MainPage = Sheets("Main") 
Dim tbl As ListObject 
Dim ws1 As Worksheet 
Dim Sharepoint As Worksheet 
Set Sharepoint = Sheets("PRP Sharepoint") 



Application.DisplayAlerts = False 
Application.ScreenUpdating = False 

Set Wb1 = ActiveWorkbook 

FileToOpen = Application.GetOpenFilename _ 
(Title:="Please choose a File", _ 
filefilter:="Excel File *.xlsx (*.xlsx),") 

If FileToOpen = False Then 
MsgBox "No File Specified.", vbExclamation, "ERROR" 

Exit Sub 

Else 
Set wb2 = Workbooks.Open(Filename:=FileToOpen) 

For Each sheet In wb2.Sheets 

    If sheet.Visible = True Then 

     Dim WorkRng1 As Range, WorkRng2 As Range, Rng1 As Range, Rng2 As Range 

Set WorkRng1 = Wb1.Sharepoint.Range("A" & Sharepoint.Rows.Count).End(xlUp).row 
Set WorkRng2 = wb2.Sharepoint.Range("A" & Sharepoint.Rows.Count).End(xlUp).row 
For Each Rng1 In WorkRng1 
rng1Value = Rng1.value 
For Each Rng2 In WorkRng2 
    If rng1Value = Rng2.value Then 
     Rng1.Interior.Color = VBA.RGB(255, 0, 0) 
     Exit For 
    End If 
Next 
Next 



    End If 

Next sheet 

End If 
End Sub 

回答

0

要設置所謂的SharePoint對象:

Set Sharepoint = Sheets("PRP Sharepoint") 

你再試圖訪問該2個不同的工作簿:

Set WorkRng1 = Wb1.Sharepoint.Range("A" & Sharepoint.Rows.Count).End(xlUp).row 
Set WorkRng2 = wb2.Sharepoint.Range("A" & Sharepoint.Rows.Count).End(xlUp).row 

你可以不這樣做,因爲SharePoint不是工作簿對象的方法。當您最初創建SharePoint對象時,它將引用特定工作表(如果您未指定哪一個工作表,則指ActiveWorkbook中的工作表)。你要麼需要創建2個獨立的表對象(打開工作簿後):

Set Sharepoint1 = Wb1.Sheets("PRP Sharepoint") 
Set Sharepoint2 = Wb2.Sheets("PRP Sharepoint") 

或聲明的範圍內時,直接參照表名稱:

Set WorkRng1 = Wb1.Sheets("PRP Sharepoint").Range("A" & Sharepoint.Rows.Count).End(xlUp).row 
Set WorkRng2 = wb2.Sheets("PRP Sharepoint").Range("A" & Sharepoint.Rows.Count).End(xlUp).row 
+0

我嘗試了上述以下建議,但它給我錯誤:對象需要以下: Set WorkRng1 = Wb1.Sheets(「PRP Sharepoint」)。Range(「A」&Sharepoint.Rows.Count).End(xlUp).row Set WorkRng2 = wb2 .Sheets(「PRP Sharepoint」)。Range(「A」&Sharepoint.Rows.Count).End(xlUp).row – Sevpoint

相關問題