4

私は多くのワークシートを持っており、現在、3 か月ごとにこれらを 1 つずつ調べて、数セルの情報を更新する必要があります。

更新されるこれらのいくつかのセルを含むマスター ソース ファイルを作成でき、すべてのワークシートがリンクされていれば、このファイルを更新するだけですべてのファイルが更新されます。

私が抱えている唯一の問題は、これらのワークシートを電子メールでクライアントに送信することです。各クライアントは特定のワークシートを受け取ります。

これは、マスター ソース ファイルへのローカル リンクが存在しなくなり、エラーが発生することを意味します。必要に応じてファイルをマスター ファイルにリンクし、マスター ファイルを更新して、それに応じて他のすべてのファイルを更新することができますが、1 つのファイルのみをクライアントに送信し、値を保持する方法はありますか?マスターファイル。

これが理にかなっていることを願っています!やりたいことはとてもシンプルで、言葉にするのはちょっと難しいです。

どんな助けやアドバイスも素晴らしいでしょう!

4

2 に答える 2

3

箱から出してこれを行う簡単な方法があると思うかもしれませんが、それは問題を提示します。このあまり洗練されていないソリューションは、クライアントシートを更新するときに開いておく必要のあるマスターワークブックからセルまたは範囲をコピーする方法を示しています。明らかに、クライアントユーザーはマスターワークブックを持っていないため、その場合、マクロはサイレントに失敗します。このコードを各クライアントワークブックのThisWorkbookモジュールに配置します。

Private Sub Workbook_Open()
    On Error Resume Next
    Dim master As Workbook
    Set master = Workbooks("master.xlsm")

    If master Is Nothing Then
    'the client is probably opening the wbook. do nothing
    Else 'copy your stuff here
        With Workbooks("master.xlsm")
            .Worksheets("Sheet1").Range("A1:D4").Copy _
                Destination:=Worksheets("Sheet1").Range("A1:D4")
        End With
    End If

End Sub
于 2011-05-18T16:51:19.433 に答える
0

私はあなたの問題を正しく理解したと思います。ブックを別のファイル名で別のブックとして保存します。通常、ワークブックのファイル名に「_sent.xlsx」を追加します。次に、それを開き、[データ]、[リンクの編集]に移動して、すべてのリンクを解除します。'値'のみがワークブックに残ります。ブックを保存すると、開いたときに値が壊れる心配がなく、ブックを送信できます。また、何かを変更する必要がある場合でも、元のファイルが残っています。

于 2012-01-20T11:27:43.430 に答える