从滚动列表更新自动路径

时间:2017-08-13 14:47:16

标签: excel vba excel-vba

我正在尝试根据酒店名称滚动列表自动编辑Excel工作表的链接。

到目前为止,我已经设法创建了一个自动路径(见附图),但是一旦单元格(“A1”)(滚动列表)被修改,我就无法更新链接

File name path 这就是我对宏的想法:

  1. 记住上一条路径,
  2. 在更改单元格“A1”
  3. 后将其替换为新路径
  4. 更新
  5. 见下面的草稿:

    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
    
      

    错误:找不到路径

    提前感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

F1和F2中的值不是路径。路径必须在文件名之前结束,当然不能包含该文件中的工作表和该工作表中的单元格地址。

答案 1 :(得分:0)

这是您重写的代码(删除了不必要的代码)

请阅读代码中的评论

Private Sub Worksheet_Change(ByVal Target As Range)

    If Application.Intersect(Range("A1"), Target) Is Nothing Then Exit Sub

    Range("F2").Copy
    Range("F1").PasteSpecial _
        Paste:=xlPasteValues, _
        Operation:=xlNone, _
        SkipBlanks:=False, _
        Transpose:=False

    ' this value is in F1 and in F2  ( it is NOT a valid filename )
    ' C:\Users\h5307-rm\Desktop\Casablanca\hotels\Casablanca\Ibis El Jadida\Budget\[Budget.xlsx]Sheet1'$A$1

    ' F2 contains an invalid path name ... ChDir command will fail
    ChDir Dir(Range("F2").Value)

    ' F1 and F2 contain invalid path names, this command will fail
    ActiveWorkbook.ChangeLink _
        Name:=Dir(Range("F1").Value), _
        NewName:=Dir(Range("F2").Value), _
        Type:=xlExcelLinks

End Sub