我終於找到很多事情錯了我腳本。
- 我也結束了在ActiveWorkbook前使用設置(使用的ThisWorkbook 是沒有必要的)
- 我相信有關使用1註釋:不是1捕獲錯誤 是有效的。
- 我現在正在運行的腳本比以前少了幾個子,比我以前的 。
- 我也做了使用電池()範圍內的錯誤,當一個 排除其他
- 我試圖到工作表變量傳遞給一個Sub(顯然你不能 做到這一點),()。
- 我確定有更多,但我不記得。
我要把它記錄下來,過了一個糟糕的一天。 :/ 正如你可以看到下面的代碼看起來沒有像我最初發布的內容。
Option Explicit:
Public mWB As Workbook
Public Sub runCSSBatch()
Set mWB = ActiveWorkbook
mWB.Sheets.Add.Name = "TEMP"
Dim WSh As Worksheet
For Each WSh In mWB.Worksheets
If InStr(WSh.Name, "CSS") = 1 Then
Call parseRowText(WSh.Name)
End If
Next
End Sub
Private Sub parseRowText(WSName As String)
Dim rowCount As Long
Dim I As Long
Dim columnCount As Long
Dim B As Long
Dim dataString As String
Dim WS As Worksheet
Set WS = mWB.Worksheets(WSName)
columnCount = mWB.Sheets(WSName).UsedRange.Columns.Count
rowCount = mWB.Sheets(WSName).UsedRange.Rows.Count
For I = 2 To rowCount
For B = 1 To columnCount
dataString = ""
If mWB.Sheets(WSName).Cells(1, B).Value = "STOP" Then
dataString = "}"
Call addToTempSheet(dataString)
Exit For
Else
If B = 1 Then
dataString = mWB.Sheets(WSName).Cells(I, B).Value & "{"
Call addToTempSheet(dataString)
Else
If dataString & mWB.Sheets(WSName).Cells(I, B).Value = "" Then
Else
dataString = mWB.Sheets(WSName).Cells(1, B).Value & ":"
dataString = dataString & mWB.Sheets(WSName).Cells(I, B).Value & ";"
Call addToTempSheet(dataString)
End If
End If
End If
Next B
Next I
End Sub
Private Sub addToTempSheet(dString As String)
mWB.Sheets("TEMP").Range("A" & Rows.Count).End(xlUp).Offset(1).Value = dString
End Sub
使用「Set mWB = ActiveWorkbook」 – 2015-03-13 10:39:58
仍然收到與Set mWB = ActiveWorkbook相同的錯誤。但是這次TEMP工作表會被創建並隨後被刪除。所以有些不同。 :/ – WouldBeNerd 2015-03-13 10:41:25
mWB前面有什麼? – 2015-03-13 10:42:24