此问题的原因是因为InputBox函数默认选择了上一次使用的范围,因此当上一次选择的范围与当前要选择的范围不同时,就会出现此问题。
解决此问题的方法是在调用InputBox函数之前清除上一次选择的范围。可以在函数调用之前加上以下代码:
Application.InputBox("", Type:=8).Clear
这将清除上一次选择的范围并强制InputBox选择当前的范围。以下是一个示例:
Sub test() Dim myRange As Range Application.InputBox("", Type:=8).Clear '清除上一次选择的范围 Set myRange = Application.InputBox("请选中一个范围:", Type:=8) MsgBox myRange.Address End Sub
在这个例子中,清除了上一次选择的范围,然后使用InputBox函数选择一个新的范围,并在消息框中显示所选范围的地址。