Макрос, который автоматически обновляет URL на основе значений ячеек - PullRequest
0 голосов
/ 18 января 2019

Я пытаюсь автоматизировать редактирование ссылок для еженедельного отчета.

Отчет составляется еженедельно, в котором используется 6 различных рабочих книг для обеспечения консолидированного представления Каждую неделю данные обновляются, и, следовательно, ссылки должны быть обновлены. Я записал приведенный ниже макрос с помощью приведенного ниже инструмента макросов, но мне нужно, чтобы он был динамическим, а ссылки менялись каждую неделю.

т.е. ниже я хотел бы, чтобы номер недели менялся в зависимости от ссылки на ячейку в консолидационном листе. Таким образом, в течение следующей недели неделя 2 станет неделей 3, а неделя 3 - неделей 4.

Так, например, на текущей неделе. A1 = неделя 3, A2 неделя 4.

Sub Macro2()
    ChDir "X:\XXXXX\XXXXX\XXXXX\XXXXX\Week 3"
    ActiveWorkbook.ChangeLink Name:= _
        "X:\XXXXX\XXXXX\XXXXX\XXXXX\Week 2\XXXXX Week 2.xlsx" _
        , NewName:= _
        "M:\XXXXX\XXXXX\XXXXX\XXXXX\Week 3\XXXXX Week 3.xlsx" _
        , Type:=xlExcelLinks
End Sub

Затем на следующей неделе я обновлю: A1: 4-я неделя и A2: 5-я неделя.

Sub Macro2()

    ChDir "X:\XXXXX\XXXXX\XXXXX\XXXXX\Week 5"
    ActiveWorkbook.ChangeLink Name:= _
        "X:\XXXXX\XXXXX\XXXXX\XXXXX\Week 4\XXXXX Week 4.xlsx" _
        , NewName:= _
        "M:\XXXXX\XXXXX\XXXXX\XXXXX\Week 5\XXXXX Week 5.xlsx" _
        , Type:=xlExcelLinks
 End Sub

1 Ответ

0 голосов
/ 18 января 2019

вот первоначальное толкование того, что вы ищете .... возможно, неправильно поняло это, поэтому дайте мне знать

Sub Macro2()

    Dim num1 As Long
    Dim num2 As Long
    Dim link1 As String
    Dim link2 As String

    ' enter your sheet name that has the A1 & A2 cells
    With ThisWorkbook.Worksheets("enter your sheet name")
        num1 = .Range("A1").Value
        num2 = .Range("A2").Value
    End With

    ChDir "X:\XXXXX\XXXXX\XXXXX\XXXXX\Week " & num2

    link1 = "X:\XXXXX\XXXXX\XXXXX\XXXXX\Week X\XXXXX Week X.xlsx"
    link2 = "M:\XXXXX\XXXXX\XXXXX\XXXXX\Week X\XXXXX Week X.xlsx"

    link1 = Replace(link1, "Week X", "Week " & num1)
    link2 = Replace(link2, "Week X", "Week " & num2)

    ActiveWorkbook.ChangeLink Name:=link1, NewName:=link2, Type:=xlExcelLinks


End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...