1
嗨我寫了這段代碼。但是這個代碼很慢。我如何優化這段代碼?如何優化此vba循環代碼?
Private Sub printItem(r, lastCol, objStream)
FirstCol = 1
Dim strFirst As String
strFirst = CStr(ActiveSheet.Cells(r, 1).Value)
If strFirst = "" Then
Exit Sub
End If
objStream.WriteText " <"
objStream.WriteText "TagName"
objStream.WriteText " "
For c = FirstCol To lastCol
data = CStr(ActiveSheet.Cells(r, c).Value)
If LenB(Trim$(data)) > 0 Then
objStream.WriteText g_AttributeName(c)
objStream.WriteText "="""
objStream.WriteText data
objStream.WriteText """ "
End If
Next c
objStream.WriteText "/>"
objStream.WriteText vbNewLine
End Sub
沒有站出來,除了也許你會更好讀取單元格的值到一個變量數組在一個操作中,而不是一個接一個。它通常會讀取多少列,並且是objStream文本文件還是其他流?在g-AttributeName()中會發生什麼。 ? – 2011-05-24 15:06:28
VBA解釋。這應該是有用的,不是很快。同樣,所有這些'WriteText'調用都會讓你付出代價,儘管這取決於'objStream'寫的是什麼。文件將比控制檯更快。底線 - 我不確定你能做得更好。 – 2011-05-24 15:19:46
慢多慢?比你預想的要慢,還是太慢,以至於阻止你做某件事?如前所述,速度並不是VBA的特長。而對於那些寫得很快而且很髒的東西,我會接受較慢的性能 – 2011-05-24 20:42:42