0

私も尋ねるかもしれません:私は特定のリンクを持つキャッシュアップファイルを持っています..12月は11月の特定のセルから情報を取得します. 12 月を開いたときに、「=+'C:\Stores\Fego Caffe Irene\Cash Ups\2011[Fego Caffe June 2011.xlsm]Daily Breakdown'!$」を変更せずに、11 月からリンクを自動収集することは可能でしょうか?新しい月を節約するたびに E$42"。したがって、1 月のファイルを作成した場合、式をずっと手動で変更しなくても、12 月に自動リンクする必要があります。

基本的にお願いします。2012 年 12 月の情報を取得する 2013 年 1 月のキャッシュアップ ファイルを作成しました。1 月のセルの式は "=+'C:\Stores\Fego Caffe Irene\Cash Ups\2012[Fego Caffe November 2012.xlsm] です。 Daily Breakdown'!$E$42" 1 月が 2012 年 12 月のファイルにリンクできるように、シートの保護を解除し、手動で 11 月を 12 月に変更する必要があります。

1 月のファイルを開くと、2012 年 12 月に自動リンクする VB マクロを作成することは可能ですか? 当月は前月から取得します。

申し訳ありませんが、これはまだ非常に新しいものです

ご助力いただきありがとうございます!!!!

4

1 に答える 1

2

を使用Workbook.LinkSourcesして、リンクされたファイルのリストを取得し、必要なファイルを で変更できますWorkbook.ChangeLink。でデータをリフレッシュWorkbook.UpdateLink

新しい Months ワークブックを作成した後に呼び出すことができるマクロを次に示します。

リンクするファイルを選択するためのダイアログボックスが開きます

簡単にするために、保護パスワードをコードに含めるように記述されていますが、それを求める方法はご存知なので、それはあなたに任せます。

Sub UpdateLink()
    Dim strFile As String
    Dim aLinks As Variant
    Dim i As Long
    Dim strLink As String
    Dim strLinkNew As String

    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .Show

        If .SelectedItems.Count > 0 Then
            strLinkNew = .SelectedItems(1)

            aLinks = ThisWorkbook.LinkSources(xlExcelLinks)
            If Not IsEmpty(aLinks) Then
                For i = 1 To UBound(aLinks)
                    strLink = aLinks(i)
                    If strLink Like "*\Fego Caffe Irene*.xlsm" Then

                        ' Change Linked File
                        ThisWorkbook.Worksheets("Links").Unprotect "YourPassword"
                        ThisWorkbook.ChangeLink Name:=strLink, NewName:=strLinkNew, Type:=xlExcelLinks
                        ThisWorkbook.Worksheets("Links").Protect "YourPassword"
                    End If
                Next
            End If
        End If
    End With
End Sub

注目に値することの1つは、すべての変数ではなく一部の変数を宣言することです。すべてのモジュールの先頭に置くOption Explicitと、常に変数を宣言するという良い習慣が強制されます。

于 2012-10-16T09:11:02.070 に答える