0

我创建了一个 InputBox,它要求用户输入包含条目的最后一列的字母。根据索引,我希望标题是工作表名称。这是我写的代码:

Dim LastEntryCol As String  
Dim ShtName As Variant  
Set ShtName = ThisWorkbook.Sheets(2) '****The number 2 will need to be changed to an index.  For now it's hard-entered.  
LastEntryCol = Application.InputBox("What is the letter of the last column containing entry labels?", ShtName)`

当我运行它时,我收到错误 1004“对象 '_Application' 的方法 'InputBox' 失败”。我怀疑这与我设置 ShtName 的方式有关,因为如果我将标题参数替换为“万岁编码!”之类的东西,代码会正常运行。

谁能向我解释出了什么问题以及我该如何解决?谢谢!

4

2 回答 2

1

您正在传递整个WorkSheet object,而不仅仅是它的名称。试试这个:

Dim LastEntryCol As String
Dim ShtName As String
ShtName = ThisWorkbook.Sheets(2).Name '****The number 2 will need to be changed to an index.  For now it's hard-entered.
LastEntryCol = Application.InputBox("What is the letter of the last column containing entry labels?", ShtName)
于 2013-10-03T20:22:48.847 回答
0

Sheets 是一个集合,因此要获取您需要使用的名称

ShtName = ThisWorkbook.Sheets.Item(2).Name

也很确定这将始终是一个字符串,因此您可以使用Dim ShtName As String和避免 Set。

于 2013-10-03T20:23:37.267 回答