这是我正在学习编写的VBA代码(从Internet获得一些参考)
Public whatyousay As String
Sub testing()
b14
b15
End Sub
Function WorksheetExists(WSName As String) As Boolean
On Error Resume Next
WorksheetExists = Worksheets(WSName).Name = WSName
On Error GoTo 0
End Function
Sub b14()
Dim sh As Worksheet
Do Until WorksheetExists(whatyousay)
whatyousay = InputBox("Enter sheet name")
If Not WorksheetExists(whatyousay) Then MsgBox whatyousay & " doesn't exist.", vbExclamation
Loop
If WorksheetExists(whatyousay) Then Sheets(whatyousay).Activate
End Sub
Sub b15()
ThisWorkbook.Worksheets(whatyousay).Range("A1").Value = xxxx
End Sub
我必须错误地调整代码,因为我在互联网上找不到任何有同样问题的人。
单击该按钮时,应该提示用户输入工作表名称,然后执行一些操作。
现在,我面临的问题是该按钮仅提示用户输入一次。如果第二次单击它,它将使用先前的用户输入而不提示。
你们中的任何人都可以指出我正确的方向吗?
答案 0 :(得分:0)
您没有删除上一次循环中 whatyousay 中剩余的内容。
Sub b15()
ThisWorkbook.Worksheets(whatyousay).Range("A1").Value = xxxx
whatyousay = vbnullstring '<~~ remove the string from last time
End Sub
就个人而言,我避免公共场合。您可以通过将字符串var作为参数传递给辅助子来执行相同的操作。