1
排序功能的內存分配我最近完成了一些代碼,通過我在Excel中的所有圖紙循環,然後對其進行排序基於特定的列和在VBA
的代碼如下所示該列中的值:
Sub sortingByLooping()
Dim rngName As Range
Dim sht As Worksheet
Dim LastRow As Long
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each sht In ActiveWorkbook.Worksheets
sht.Activate
Set rngName = sht.Range("1:1").Find(What:="SOMENAME", MatchCase:=False)
If Not rngName Is Nothing Then
LastRow = sht.Cells(sht.Rows.Count, rngName.Column).End(xlUp).Row
On Error Resume Next
Set emptyDates = sht.Range(rngDate, sht.Cells(LastRow, rngDate.Column)).SpecialCells(xlCellTypeBlanks)
On Error GoTo 0
End If
sht.Sort.SortFields.Clear
If Not rngName Is Nothing Then
sht.Sort.SortFields.Add Key:=rngName, _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
End If
sht.Sort.SetRange sht.Cells
sht.Sort.Header = xlYes
sht.Sort.MatchCase = False
sht.Sort.Orientation = xlTopToBottom
sht.Sort.SortMethod = xlPinYin
sht.Sort.Apply
Next sht
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
此代碼OFC很好地工作(我整明白「與」和塊「結尾」,但我就是這麼做的,因爲我發現它在視覺上更易於閱讀)。
不過我想先這樣做:
sht.Sort.SetRange(sht.Cells)
我把括號圍繞sht.cells當我設置的範圍,我被擊中了與「出內存「錯誤。我迅速將其改回爲沒有括號來糾正問題。
但是現在我想知道爲什麼當我將括號放在sht.cells周圍時爲什麼會出現此錯誤,並且爲什麼當我不在sht.cells周圍放置括號時沒有出現此錯誤?圍繞這個問題的內存問題是什麼,並且我還應該瞭解涉及這個特定代碼行的其他風險嗎?
由於
哦,好的。那我肯定會那樣做。感謝您的信息。 :) – Gman
@Gman你可能想掃描你的程序調用中的冗餘括號代碼。提示:在'DoSomething(foo)'中,parens是*參數*語法的一部分,而在'bar = DoSomething(foo)'中,parens是*參數列表*語法的一部分。注意缺少空格。 –