我正在使用一系列绘图包创建此工作表(我作为工程师工作)。我希望我的用户能够看到我在启动excel应用程序前一天修改过的绘图包列表。 我想要一个显示该列表的弹出消息框。 所以我做了一些研究,我知道我需要设置一个变化检测宏(用于检测我已经更改的单元格)和一个带有消息框的workbook_open,其中包含前一天修改过的单元格列表。
我不知道如何使用msgbox代码行插入单元格值,或者如何设置整个代码。
非常感谢任何帮助。
答案 0 :(得分:1)
我同意Siddharth - 最简单的方法可能就是使用缓冲区工作表。
您可以每天创建缓冲区,然后在打开工作簿时将输入的数据与缓冲区进行比较。然后创建一个更新的缓冲区。
这将有效;虽然它没有使用消息框,但它只是突出显示了最后一次打开时更改的sheet1和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
我简化了这个并使子名更好。