我写了弹出输入框然后打印范围的vba代码。如果用户按下“取消”按钮,我想停止代码。到目前为止,无论用户采取什么行动,它都会打印出来,并浪费大量纸张。下面是代码:如何在用户取消输入框后停止vba
Sub Form()
ThisWorkbook.Sheets("FAQs").Activate
ActiveSheet.Range("A1048306").Select
ActiveCell.FormulaR1C1 = InputBox("SrNo1")
ThisWorkbook.Sheets("FAQs").Activate
ActiveSheet.Range("B1048306").Select
ActiveCell.FormulaR1C1 = InputBox("SrNo2")
ThisWorkbook.Sheets("FAQs").Activate
ActiveSheet.Range("C1048306").Select
ActiveCell.FormulaR1C1 = InputBox("SrNo3")
ThisWorkbook.Sheets("FAQs").Activate
ActiveSheet.Range("D1048306").Select
ActiveCell.FormulaR1C1 = InputBox("SrNo4")
ThisWorkbook.Sheets("FAQs").Activate
ActiveSheet.Range("E1048306").Select
ActiveCell.FormulaR1C1 = InputBox("SrNo5")
Columns("A:D").EntireColumn.Hidden = False
Range("A1048308:B1048359").PrintOut
Columns("A:D").EntireColumn.Hidden = True
ActiveSheet.Range("A1").Select
ThisWorkbook.Sheets("Spends Tracker").Activate
ActiveSheet.Range("A1").Select
End Sub
编辑:
这是我的新代码不更新单元A1048306但仍与VBA和更新细胞继续B1048306,C1048306,D1048306,E1048306并打印范围。
Sub Form()
Dim strVale As String
Dim ws As Excel.Worksheet
Set ws = ActiveWorkbook.Sheets("FAQs")
strVale = InputBox("SrNo1")
If strVale = vbNullString Then
MsgBox ("User canceled!")
ThisWorkbook.Sheets("Spends Tracker").Activate
ActiveSheet.Range("A1").Select
Exit Sub
Else
'Here we can use the objects range to set the formula.
ws.Range("A1048306").FormulaR1C1 = strValue
End If
ws.Range("B1048306").FormulaR1C1 = InputBox("SrNo2")
ws.Range("C1048306").FormulaR1C1 = InputBox("SrNo3")
ws.Range("D1048306").FormulaR1C1 = InputBox("SrNo4")
ws.Range("E1048306").FormulaR1C1 = InputBox("SrNo5")
ws.Columns("A:D").EntireColumn.Hidden = False
ws.Range("A1048308:B1048359").PrintOut
ws.Columns("A:D").EntireColumn.Hidden = True
ActiveSheet.Range("A1").Select
ThisWorkbook.Sheets("Spends Tracker").Activate
ActiveSheet.Range("A1").Select
结束子
非常感谢! – user1778266
很高兴帮助。继续学习,让SO社区知道什么时候需要指导。 – MatthewD
嗨马修,我还有一个问题。我玩了一下代码。现在发生的情况是,如果用户在第一个框中输入任何值,则它将进入下一个框,而不更新单元格“A1048306”。 – user1778266