0

一連の図面パッケージを使用してこのワークシートを作成しています (私はエンジニアとして働いています)。ユーザーが Excel アプリを起動したときに、前日に修正した描画パッケージのリストを表示できるようにしたいと考えています。そのリストを表示するポップアップメッセージボックスが必要です。だから私はいくつかの調査を行いました.変更検出マクロ(変更したセルを検出するため)と、前日に変更されたセルのリストを含むメッセージボックスを備えたworkbook_openを設定する必要があることを知っています.

コードの msgbox 行でセル値を挿入する方法、またはこの全体を設定する方法がわかりません。

どんな助けでも大歓迎です。

4

1 に答える 1

1

Siddharthに同意します。これを行う最も簡単な方法は、おそらくバッファワークシートを使用することです。

毎日バッファを作成し、ワークブックを開いたときに入力したデータをバッファと比較することができます。次に、更新されたバッファを作成します。

これは機能します。メッセージボックスを使用する代わりに、最後に開いたときに変更されたシート1と列Aのセルを強調表示するだけですが、個人的にはセルを強調表示することをお勧めします。難しすぎる:

Sub Auto_Open()

ClearSheet1Formatting

CompareValuesBetweenTwoWorksheets

MsgBox "Hi, thanks for opening me Dora. The cells that are highlighted were changed on last open."

UpdateBufferSheet

End Sub


Sub CompareValuesBetweenTwoWorksheets()

Dim s1 As Worksheet
Dim s2 As Worksheet
Dim j As Long
Dim jj As Long
Dim CheckColumn As Integer
CheckColumn = 1
Set s1 = Sheet1
Set s2 = Sheet2
j = s1.Cells(Rows.Count, CheckColumn).End(xlUp).Row
For jj = 1 To j
    If s1.Cells(jj, CheckColumn).Value <> s2.Cells(jj, CheckColumn).Value Then
        s1.Cells(jj, CheckColumn).Interior.Color = vbYellow
    End If
Next

End Sub

Sub UpdateBufferSheet()

Application.CutCopyMode = True

    Sheets("Sheet1").Select
    Cells.Select
    Selection.Copy
    Sheets("Sheet2").Select
    Cells.Select
    ActiveSheet.Paste
    Sheets("Sheet1").Select
    Range("A1").Select

Application.CutCopyMode = False

End Sub

Sub ClearSheet1Formatting()

    Sheets("Sheet1").Select
    Cells.Select
    With Selection.Interior
        .Pattern = xlNone
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    Range("A1").Select

End Sub

これを簡略化し、サブ名を改善しました。

于 2012-08-02T16:30:13.260 に答える