我一直在試圖讓代碼在過去的一週工作,沒有運氣。我嘗試了各種修改,最終給出了不同的錯誤代碼。VBA - 如果條件符合,將模板表複製到另一個工作表的多個工作表中
我得到的第一個錯誤是與Set rng = Intersect(.UsedRange, .Columns(2))
對象不支持
於是我改變了這個剛剛通過整列去該屬性或方法只是爲了看看它會工作:Set rng = Range("B:B")
,當我這樣做然後它通讀,我得到一個錯誤Set HyperlinkedBook = Workbooks.Open(Filename:=cell.Offset(0, -1).Value)
與錯誤代碼:
運行時錯誤1004對不起我們沒有找到24 James.xlsx
它可能被移動,重命名或刪除?
我相信這行代碼假設超鏈接應該打開具有該名稱的不同工作簿,但事實並非如此。彙總表上的超鏈接鏈接到同一主工作簿上的其他工作表,只有模板位於單獨的書上。
因此,爲了克服這個問題,我嘗試改變這一行,並最終以下面的代碼,它管理打開模板工作簿,並複製只是選項卡名稱到第一張表,然後給出以下行錯誤TemplateBook.Sheets("Red").Copy ActiveSheet.Paste
,說
標出來
Sub Summary()
Dim MasterBook As Workbook
Set MasterBook = ActiveWorkbook
With MasterBook
Dim rng As Range
Set rng = Range("B:B")
End With
Dim TemplateBook As Workbook
Set TemplateBook = Workbooks.Open(Filename:=" C:\Users\Desktop\Example template.xlsx")
Dim cell As Range
For Each cell In rng
If cell.Value = "Red" Then
cell.Offset(0, -1).Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
TemplateBook.Sheets("Red").Copy ActiveSheet.paste
ElseIf cell.Value = "Blue" Then
cell.Offset(0, -1).Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
TemplateBook.Sheets("Blue").Copy ActiveSheet.paste
End If
Next cell
End Sub
我試了更多的變化,但我不能得到它的拷貝正確的模板,切換回主簿片,FOL的範圍通過鏈接到相同主工作簿中的正確表單,然後粘貼模板。
將其重命名非常感謝您的回覆,我給你建議的修改,並將其貫穿沒有錯誤,但它是不可複製粘貼到預先存在的工作表中,而是按照與B列相同的順序創建標記爲紅色或藍色的新工作表,並將這些模板粘貼到這些新工作表中。說實話,如果正在創建的新工作表被貼上相鄰單元格的名稱(列A)並超鏈接到它,這對我來說會更好。這可以爲我預先爲A列中的每個名稱手動創建一個新表單節省更多時間。 – kira123
@ kira123這是你想要根據你的帖子,你的代碼。不是嗎?你想要什麼 ?嘗試**編輯1 **下的循環,也許這就是你的意思 –
我可能沒有解釋清楚,所以最初我想要的是:1.一旦它識別出列B中的什麼顏色,例如摘要表中的紅色,2 。打開模板工作簿,3.轉到紅色模板,4.複製整個工作表,5.切換回原來的MasterBook,6.單擊顏色旁邊的單元格(列A)中的超鏈接名稱(在B列)7.這將它帶到另一個預先存在的同一主簿中的白紙上,8.粘貼該顏色的模板。 9.通過將正確的顏色模板粘貼到其他工作表來重複此過程。 – kira123