簡體   English   中英

Excel VBA 中的范圍運行時錯誤

[英]Range runtime error in Excel VBA

我相信我已經弄清楚了其他所有內容,但是 Set newSheetName = sht.Range("A1:A") 行沒有提取任何信息。 我收到運行時錯誤“1004”:對象“_Worksheet”的方法“范圍”失敗。 我錯過了什么?

我想要實現的是讓這個宏查看工作表“ARK_E_TEXAS”中的范圍,即 A1 到 C23(“ARK_E_TEXAS_LIST”)。 如果 A1:A 有數據,它將創建一個新工作表並使用單元格名稱命名該新工作表。 我正在使用 Lastrow 行來知道要下多少行以及 if 函數來跳過空白。

Sub Create_ARK_E_TEXAS()
    Dim sht As Worksheet
    Dim newSheetName As Range
    Dim dataRange As Range
    Dim Lastrow As Long

    Set sht = ThisWorkbook.Sheets("ARK_E_TEXAS")
    Set newSheetName = sht.Range("A1:A")
    Lastrow = sht.Range("ARK_E_TEXAS_LIST").Rows.Count
    Set dataRange = sht.Range("A1:C" & Lastrow)

For Each newSheetName In dataRange
    If newSheetName.Value <> "" Then
        Sheets.Add After:=Sheets(Sheets.Count) 'creates a new worksheet
        Sheets(Sheets.Count).Name = newSheetName.Value ' renames the new worksheet
    End If
Next newSheetName
End Sub

好的,我在@AlexWeber 的幫助下得到了答案。

Sub Create_ARK_E_TEXAS()


Dim sht As Worksheet
Dim newSheetName As Range
Dim dataRange As Range
Dim Lastrow As Long

Set sht = ThisWorkbook.Sheets("ARK_E_TEXAS")
Lastrow = sht.Range("ARK_E_TEXAS_LIST").Rows.Count
Set newSheetName = sht.Range("A1:A" & Lastrow)
Set dataRange = sht.Range("A1:A" & Lastrow)

For Each newSheetName In dataRange
If newSheetName.Value <> "" Then
    Sheets.Add After:=Sheets(Sheets.Count) 'creates a new worksheet
    Sheets(Sheets.Count).Name = newSheetName.Value ' renames the new worksheet
End If
Next newSheetName
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM