当用户在工作表中选择超过 8 个单元格时,我需要显示一个消息框说 "Please select a maximum of 8 data."
I need to show a msgbox saying "Please select a maximum of 8 data." when the user selected more than 8 cells in the worksheet
所以在另一个工作表中最多允许复制8个数据。每次用户选择超过8个数据时,就会出错。如何显示我自己的消息框而不是 VBA.
提供的默认消息框
我对 VBA 完全陌生。
这是我的代码。它有效,但我认为它适用于用户可能遇到的所有错误。
Sub CopySelectedCells()
On Error GoTo EncounteredError
Worksheets("3inch_OD7133KS ").Activate
Selection.Resize(, 4).Copy Destination:=Worksheets("Form").Range("b7")
Selection.Resize(, 4).Copy Destination:=Worksheets("Form").Range("b27")
Selection.Resize(, 4).Copy Destination:=Worksheets("Form").Range("b47")
Exit Sub
EncounteredError:
MsgBox "ERROR OCCURED: Please choose a MAXIMUM of 8 data."
End Sub
On Error GoTo Handler
通常被认为是不好的做法。您应该始终尽可能尝试将预期的错误编码出来,以获得更高的可靠性。在这种情况下,我们可以在使用 .Rows.Count
和 .Columns.Count
采取任何操作之前简单地检查 .Selection 的大小。我们需要限制 sub 仅在 returns 8 x 1
范围内工作。
如果这就是你的潜艇所做的一切,那么这应该没问题....
Sub Selections()
If Selection.Rows.Count <> 8 Or Selection.Columns.Count <> 1 Then
MsgBox "Error Message Here"
Exit Sub
Else
Selection.Resize(, 4).Copy
With Worksheets("3inch_OD7133KS ")
.Range("B7").PasteSpecial xlPasteValues
.Range("B27").PasteSpecial xlPasteValues
.Range("B47").PasteSpecial xlPasteValues
End With
End If
End Sub
如果您在验证了所选范围的大小后要添加更多代码,您可以像这样嵌套测试....
Sub Selections()
If Selection.Rows.Count <> 8 Or Selection.Columns.Count <> 1 Then
MsgBox "Error Message Here"
Exit Sub
End If
Selection.Resize(, 4).Copy
With Worksheets("Sheet1")
.Range("B7").PasteSpecial xlPasteValues
.Range("B27").PasteSpecial xlPasteValues
.Range("B47").PasteSpecial xlPasteValues
End With
'More code here....
End Sub
所以在另一个工作表中最多允许复制8个数据。每次用户选择超过8个数据时,就会出错。如何显示我自己的消息框而不是 VBA.
提供的默认消息框我对 VBA 完全陌生。
这是我的代码。它有效,但我认为它适用于用户可能遇到的所有错误。
Sub CopySelectedCells()
On Error GoTo EncounteredError
Worksheets("3inch_OD7133KS ").Activate
Selection.Resize(, 4).Copy Destination:=Worksheets("Form").Range("b7")
Selection.Resize(, 4).Copy Destination:=Worksheets("Form").Range("b27")
Selection.Resize(, 4).Copy Destination:=Worksheets("Form").Range("b47")
Exit Sub
EncounteredError:
MsgBox "ERROR OCCURED: Please choose a MAXIMUM of 8 data."
End Sub
On Error GoTo Handler
通常被认为是不好的做法。您应该始终尽可能尝试将预期的错误编码出来,以获得更高的可靠性。在这种情况下,我们可以在使用 .Rows.Count
和 .Columns.Count
采取任何操作之前简单地检查 .Selection 的大小。我们需要限制 sub 仅在 returns 8 x 1
范围内工作。
如果这就是你的潜艇所做的一切,那么这应该没问题....
Sub Selections()
If Selection.Rows.Count <> 8 Or Selection.Columns.Count <> 1 Then
MsgBox "Error Message Here"
Exit Sub
Else
Selection.Resize(, 4).Copy
With Worksheets("3inch_OD7133KS ")
.Range("B7").PasteSpecial xlPasteValues
.Range("B27").PasteSpecial xlPasteValues
.Range("B47").PasteSpecial xlPasteValues
End With
End If
End Sub
如果您在验证了所选范围的大小后要添加更多代码,您可以像这样嵌套测试....
Sub Selections()
If Selection.Rows.Count <> 8 Or Selection.Columns.Count <> 1 Then
MsgBox "Error Message Here"
Exit Sub
End If
Selection.Resize(, 4).Copy
With Worksheets("Sheet1")
.Range("B7").PasteSpecial xlPasteValues
.Range("B27").PasteSpecial xlPasteValues
.Range("B47").PasteSpecial xlPasteValues
End With
'More code here....
End Sub