簡體   English   中英

遍歷工作表不起作用

[英]Looping through sheets is not working

我正在使用以下代碼

Sub WMC()

Dim wb As Workbook
Set wb = Workbooks.Open(Filename:="G:\filedirectory.xls")

With wb

For i = 1 To Sheets.Count
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 4), TrailingMinusNumbers:=True
Next i

End With

ActiveWorkbook.Save
ActiveWorkbook.Close

End Sub

由於某種原因,循環會運行,但不會從一張紙移動到下一張紙-我認為它只會在工作簿的第一張紙上運行相同的代碼大約十次(因為我有10張紙)。 如果我刪除該循環,則該循環將運行一次並關閉,以便代碼識別出該循環,而不會遵循該循環。 我已經嘗試了以上的變化,但每次都會遇到相同的問題。

任何想法將不勝感激。

丹科

雷切爾

您的With塊不符合對象資格。

For i = 1 To Sheets.Count
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 4), TrailingMinusNumbers:=True
Next i

諸如Columns("A:A")類的合格對象始終引用ActiveWorkbookActiveSheet 您有一個With塊,但沒有將此對象與With塊關聯。

嘗試這個:

For i = 1 To .Sheets.Count
    .Sheets(i).Columns("A:A").TextToColumns Destination:=.Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 4), TrailingMinusNumbers:=True
Next i

或者, 我的首選是只使用For Each ,在這種情況下沒有理由進行索引循環:

Dim ws as Worksheet
With wb
    For each ws in .Worksheets
        ws.Columns("A:A").TextToColumns Destination:=ws.Range("A1"), ...


    Next
    .Save
    .Close
End With

您沒有指定代碼應該在哪張紙上工作,並且需要限定所有范圍:

Sub WMC()

Dim wb As Workbook
Set wb = Workbooks.Open(Filename:="G:\filedirectory.xls")

With wb

For i = 1 To .Sheets.Count
With .Sheets(i)
.Columns("A:A").TextToColumns Destination:=.Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 4), TrailingMinusNumbers:=True
End With
Next i

.Save
.Close
End With
End Sub

暫無
暫無

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

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