我有巨大的文件(超過500,000行),我需要找到如果「M」列等於「」,如果它等於「」 ,而不是我需要在「N」列中寫下某些內容。找到一個空單元格,並在一個巨大的文件中的另一列寫東西
我這樣做=「」,因爲IsEmpty()
不在這些文件中工作(不知道爲什麼)。
這是我當前的代碼:(我刪除的內容,沒有必要)
Sub sbVBA_COMMENTS_ExcelSheets()
'CONSTANTS SERVICENTRE FILES (PROD FOUR)
Const SC_STRLINE As Integer = 4 'FIRST PART IS ALWAYS AT LINE 4
Const SC_COLNUM As String = "B" 'PART NUMBERS WILL ALWAYS BE IN THE B COLUM FOR EVERY EXCEL FILES
Const SC_COLMKT As String = "K" 'NEW MARKETING CODE WILL ALWAYS BE IN THE K COLUM FOR EVERY EXCEL FILES
Const SC_COLDCT As String = "M" 'NEW DISCOUNT CODE WILL ALWAYS BE IN THE M COLUM FOR EVERY EXCEL FILES
Const SC_COLPRB As String = "N" 'NEW COMMENTS AND PROBLEM CODE WILL ALWAYS BE IN THE M COLUM FOR EVERY EXCEL FILES
'VARIABLES
Dim RowCount As Long
Dim ct As Long
'SET VARIABLES
RowCount = 0
ct = SC_STRLINE
Sheets(4).Select
'ADD COMMENTS
With Sheets(4)
RowCount = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
While ct <= RowCount
If Sheets(4).Range(SC_COLDCT & ct).Value = "" Then
Sheets(4).Range(SC_COLPRB & ct).Value = "EMPTY"
End If
ct = ct + 1
Wend
'FILTER BY COMMENTS
ActiveWorkbook.Worksheets(4).AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets(4).AutoFilter.Sort.SortFields.Add Key:= _
Range(SC_COLPRB & (SC_STRLINE - 1)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("PROD FOUR").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
這是工作......莫名其妙......但它是超慢,當我運行宏,我的Excel死亡幾乎70%的時間。
而且有時候,這個宏會導致一個問題,即它會到處寫下來EMPTY出於某種原因...
基本上,我在找一個更快和更清潔的方式做同樣的事情。
有沒有辦法在做同樣的事情時獲得表現?
請注意,我不是一個編碼器,所以如果你能以一種我能理解的方式回答我,那將不勝感激。
嘗試使用的'.Value2'代替'.Value' – sourceCode
是否使用'Application.ScreenUpdating = Fals'e,'Application.Calculation = xlManual'等。?? – dwirony