我想根據酒店名稱滾動列表自動編輯我的Excel表單的鏈接。從滾動列表中自動更新路徑
到目前爲止,我已成功地創建一個自動化路徑(見圖片附後),但我並沒有設法儘快細胞(「A1」)(滾動列表)被修改
更新鏈接 這就是我心目中的宏:
- 記住前面的路徑,
- 新路徑替換它跟隨小區的變化「A1」
- 更新
見我下面草案:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range(A1)
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
Run Macro_2
End If
End Sub
Sub Macro_2()
Range("F2").Copy
Range("F1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ChDir Dir(Range("F2").Value)
ActiveWorkbook.ChangeLink Name:=Dir(Range("F1").Value) _
, NewName:=Dir(Range("F2").Value) _
, Type:=xlExcelLinks
End Sub
錯誤:路徑找不到
預先感謝您的幫助!
在你的代碼的哪一行的註釋是你的錯誤?我期望'運行Macro_2'導致錯誤。省略「運行」。你可能會說'Call Macro_2',但「Call」是多餘的。 'Application.Intersect(KeyCells,Range(Target.Address))'不應該引起錯誤,但是它是複雜的。 「目標」已經是一個範圍。因此'Application.Intersect(KeyCells,Target)'會做同樣的工作。 – Variatus
'ChDir'和'Dir'是兩個不同的命令。我建議測試'Dir(Range(「F2」)。Value)'返回的結果。你的意思可能是'ChDir Range(「F2」)。Value',並繼續在下一條指令中使用'Dir'函數類似的錯誤。 「Dir」的正確使用是檢查路徑是否存在,如果不存在則不要繼續使用該路徑。 – Variatus
錯誤出現在Macro_2()上,它不能識別ChDir Dir(範圍(「F2」)。值,它也不識別ChDir範圍(「F2」)。值請注意,單元格F2包含以下內容: = 「C:\用戶\ h5307-RM \桌面\卡薩布蘭卡\酒店\」 &VLOOKUP($ A $ 1,設置$ A $ 2:$ C $ 3,2,FALSE)& 「\」 &Sheet 1中A1&「\預算\ [! Budget.xlsx] Sheet1'!$ A $ 1「 –