Vba 为什么一旦我将Excel工作表重命名为默认值';s";第1页;?

Vba 为什么一旦我将Excel工作表重命名为默认值';s";第1页;?,vba,excel,Vba,Excel,当我的工作表命名为“Sheet1”时,我的代码工作。当我将其重命名为“堆栈溢出”时,它失败了。为什么? 当我的工作表命名为“Sheet1”时,我的代码工作。当我将其重命名为“堆栈溢出”时,它失败了。为什么? 这是因为后者的名称中有空格 正确的方法如下所述,这两种方法都适用 Sub Button1_Click() LastRow1 = LastRow("Sheet1") End Sub Function LastRow(sheetname as String) As Long

当我的工作表命名为“Sheet1”时,我的代码工作。当我将其重命名为“堆栈溢出”时,它失败了。为什么?

当我的工作表命名为“Sheet1”时,我的代码工作。当我将其重命名为“堆栈溢出”时,它失败了。为什么?

这是因为后者的名称中有空格

正确的方法如下所述,这两种方法都适用

Sub Button1_Click()

   LastRow1 = LastRow("Sheet1")

End Sub

Function LastRow(sheetname as String) As Long

   LastRow = Range(sheetname & "!A" & Rows.Count).End(xlUp).Row

End Function
注意到单引号了吗

IMP:我知道我在重复这个信息,但我仍然觉得你应该遵循我在上一个问题的链接中提到的方法

当我的工作表命名为“Sheet1”时,我的代码工作。当我将其重命名为“堆栈溢出”时,它失败了。为什么?

这是因为后者的名称中有空格

正确的方法如下所述,这两种方法都适用

Sub Button1_Click()

   LastRow1 = LastRow("Sheet1")

End Sub

Function LastRow(sheetname as String) As Long

   LastRow = Range(sheetname & "!A" & Rows.Count).End(xlUp).Row

End Function
注意到单引号了吗


IMP:我知道我在重复这个信息,但我仍然觉得您应该遵循我在上一个问题中给出的链接中提到的方法

为什么要发送工作表名称字符串而不是工作表对象

Function LastRow(sheetname As String) As Long

   LastRow = Range("'" & sheetname & "'!A" & Rows.Count).End(xlUp).Row

End Function

为什么要发送工作表名称字符串而不是工作表对象

Function LastRow(sheetname As String) As Long

   LastRow = Range("'" & sheetname & "'!A" & Rows.Count).End(xlUp).Row

End Function

不幸的是,这是最后一个问题的继续:)不幸的是,这是最后一个问题的继续:)只是想知道这段代码是否比
sheetname.range(…)
。只是想知道这段代码是否比
sheetname.range(…)
有优势。