VBA 使用 If-Then 调用子例程 - Goto
VBA Calling subroutine using If-Then - Goto
Sub Testcopy()
X = MsgBox("Press 1 to clear sheet or press 2 to copy")
If X = 1 Then GoTo clearsheet
If X = 2 Then GoTo Copysheet
'MsgBox ("Incorrect entry")
End Sub
Sub clearsheet()
sheetclearname = InputBox(" Enter the sheet you want to clear")
Worksheets(sheetclearname).Select
Worksheets(sheetclearname).UsedRange.Clear
End Sub
Sub Copysheet()
Worksheets("Inputs").Activate
Worksheets("Inputs").Range("Expenses").Copy
Worksheets("Sheet3").Activate
ActiveSheet.Range("A2").PasteSpecial Paste:=xlPasteValues
ActiveSheet.Range("A2").PasteSpecial Paste:=xlPasteFormats
End Sub
伙计们
我正在尝试制作一个要求用户输入选项 1 或 2 的主例程
选项 1 进入子例程 clearsheet 并清除 sheet 选择的
选项 2 激活子例程 CopySheet 并将此从选项卡输入范围费用复制到 sheet 3
当我 运行 宏时,我得到标签未定义
- 什么是此处未定义的标签以及如何使其工作
谢谢
Sub Testcopy()
X = MsgBox("Press 1 to clear sheet or press 2 to copy")
If X = 1 Then Call clearsheet
If X = 2 Then Call Copysheet
'MsgBox ("Incorrect entry")
End Sub
Sub expensecopy()
X = InputBox("Press 1 to clear sheet or press 2 to copy")
If X = 1 Then Call clearsheet
If X = 2 Then Call copysheet
If X <> 1 Or 2 Then Call usererrorhandler
End Sub
Sub usererrorhandler()
Z = MsgBox("Incorrect entry, Please enter 1 or 2")
End Sub
Sub clearsheet()
sheetclearname = InputBox(" Enter the sheet you want to clear")
Worksheets(sheetclearname).Select
Worksheets(sheetclearname).UsedRange.Clear
End Sub
Sub copysheet()
Worksheets("Inputs").Activate
Worksheets("Inputs").Range("Expenses").Copy
Worksheets("Sheet3").Activate
ActiveSheet.Range("A2").PasteSpecial Paste:=xlPasteValues
ActiveSheet.Range("A2").PasteSpecial Paste:=xlPasteFormats
End Sub
谢谢大家,这是更新后的代码,它运行完美。只是好奇作为一个附加问题。
如果用户输入 1 或 2 以外的任何内容,我想将用户从例程 usererrorhandler 发送回输入选项 1 或 2 的选项,而不是重新运行宏。
有什么建议吗?
Sub Testcopy()
X = MsgBox("Press 1 to clear sheet or press 2 to copy")
If X = 1 Then GoTo clearsheet
If X = 2 Then GoTo Copysheet
'MsgBox ("Incorrect entry")
End Sub
Sub clearsheet()
sheetclearname = InputBox(" Enter the sheet you want to clear")
Worksheets(sheetclearname).Select
Worksheets(sheetclearname).UsedRange.Clear
End Sub
Sub Copysheet()
Worksheets("Inputs").Activate
Worksheets("Inputs").Range("Expenses").Copy
Worksheets("Sheet3").Activate
ActiveSheet.Range("A2").PasteSpecial Paste:=xlPasteValues
ActiveSheet.Range("A2").PasteSpecial Paste:=xlPasteFormats
End Sub
伙计们
我正在尝试制作一个要求用户输入选项 1 或 2 的主例程 选项 1 进入子例程 clearsheet 并清除 sheet 选择的
选项 2 激活子例程 CopySheet 并将此从选项卡输入范围费用复制到 sheet 3
当我 运行 宏时,我得到标签未定义
- 什么是此处未定义的标签以及如何使其工作
谢谢
Sub Testcopy()
X = MsgBox("Press 1 to clear sheet or press 2 to copy")
If X = 1 Then Call clearsheet
If X = 2 Then Call Copysheet
'MsgBox ("Incorrect entry")
End Sub
Sub expensecopy()
X = InputBox("Press 1 to clear sheet or press 2 to copy")
If X = 1 Then Call clearsheet
If X = 2 Then Call copysheet
If X <> 1 Or 2 Then Call usererrorhandler
End Sub
Sub usererrorhandler()
Z = MsgBox("Incorrect entry, Please enter 1 or 2")
End Sub
Sub clearsheet()
sheetclearname = InputBox(" Enter the sheet you want to clear")
Worksheets(sheetclearname).Select
Worksheets(sheetclearname).UsedRange.Clear
End Sub
Sub copysheet()
Worksheets("Inputs").Activate
Worksheets("Inputs").Range("Expenses").Copy
Worksheets("Sheet3").Activate
ActiveSheet.Range("A2").PasteSpecial Paste:=xlPasteValues
ActiveSheet.Range("A2").PasteSpecial Paste:=xlPasteFormats
End Sub
谢谢大家,这是更新后的代码,它运行完美。只是好奇作为一个附加问题。
如果用户输入 1 或 2 以外的任何内容,我想将用户从例程 usererrorhandler 发送回输入选项 1 或 2 的选项,而不是重新运行宏。
有什么建议吗?