Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba Can';t使用If语句更改工作表的名称_Vba_Excel - Fatal编程技术网

Vba Can';t使用If语句更改工作表的名称

Vba Can';t使用If语句更改工作表的名称,vba,excel,Vba,Excel,我想更改工作表的名称,具体取决于我拥有的文件。它应该有“File1”或“File2”工作表。但当我试图使用更改后的工作表名称时,我遇到了一个错误“超出范围”,因此这意味着如果语句中的代码不起作用,请帮助我解决这个问题 Dim wsSheet As Worksheet Dim wsSheet2 As Worksheet On Error Resume Next Set wsSheet = Sheets("File1") Set wsSheet2 = Sheets("File2") On Error

我想更改工作表的名称,具体取决于我拥有的文件。它应该有“File1”或“File2”工作表。但当我试图使用更改后的工作表名称时,我遇到了一个错误“超出范围”,因此这意味着如果语句中的代码不起作用,请帮助我解决这个问题

Dim wsSheet As Worksheet
Dim wsSheet2 As Worksheet
On Error Resume Next
Set wsSheet = Sheets("File1")
Set wsSheet2 = Sheets("File2")
On Error GoTo 0
If Not wsSheet Is Nothing Then
Sheets("Sheet1").Name = "Sheet1ChangedFile1"
Sheets("Sheet2").Name = "Sheet2ChangedFile1"
Else
If Not wsSheet2 Is Nothing Then
Sheets("Sheet1").Name = "Sheet1ChangedFile2"
Sheets("Sheet2").Name = "Sheet2ChangedFile2"
End If
End If

Sheets("Sheet1ChangedFile2").Select 'Here I get an error

问题在于Else语句,如果您完成了第一个if语句,则永远无法到达Else部分,因此请使用以下语句:

Dim wsSheet As Worksheet
Dim wsSheet2 As Worksheet
On Error Resume Next
Set wsSheet = Sheets("File1")
Set wsSheet2 = Sheets("File2")
On Error GoTo 0
If Not wsSheet Is Nothing Then
Sheets("Sheet1").Name = "Sheet1ChangedFile1"
Sheets("Sheet2").Name = "Sheet2ChangedFile1"
End If 'Changed the Else to End If
If Not wsSheet2 Is Nothing Then
Sheets("Sheet1").Name = "Sheet1ChangedFile2"
Sheets("Sheet2").Name = "Sheet2ChangedFile2"
End If

Sheets("Sheet1ChangedFile2").Select  

我的猜测是wsSheet2没有什么是真的。因此,您从未点击第二个if语句,但问题是我有这个工作表,它适用于第一个if语句第一个
if
将Sheet1的名称设置为Sheet1ChangedFile1。如果Sheet1已重命名为Sheet1ChangedFile1,则无法尝试选择Sheet1ChangedFile2。