问题:
通过此论坛上的录音机和帮助,我制作了一个代码(用于按钮)。专栏' i'已经(从第25行)' Pcs'或一个数字。我的宏找到Pcs并将其更改为""并且宏删除""和0' s。填充细胞的长度是可变的,所以我做了500作为结束'但它永远达不到。如果我运行宏,它可以工作并完成工作,但需要很长时间,特别是因为它必须做500行..
function myFunction(cssClasses){
$(cssClasses).css({
'position' : 'absolute',
'left' : '50%',
'top' : '50%',
'margin-left' : -$('.box.wide .title').outerWidth()/2,
'margin-top' : -$('.box.wide .title').outerHeight()/2
});
}
myFunction('.box.standard .title');
myFunction('.box.large .title');
myFunction('.box.wide .title');
我很高兴我可以在论坛和录音机的帮助下制作这个宏,但现在我卡住加速了,没有真正的线索从哪里开始。有人有提示吗?
谢谢,如果需要更多信息或努力,请告诉我。
答案 0 :(得分:3)
要以快速可用的方式进行,您可以使用:
Sub DelMe()
Dim i As Long, x As Variant, y As Range
With Sheets("Sheet1")
x = .Range("I1", .Cells(Rows.Count, 9).End(xlUp)).Value
If UBound(x) < 25 Then Exit Sub
For i = 25 To UBound(x)
If x(i, 1) = 0 Or x(i, 1) = "" Or InStr(1, x(i, 1), "pcs", vbTextCompare) > 0 Then
If y Is Nothing Then
Set y = .Rows(i)
Else
Set y = Union(y, .Rows(i))
End If
End If
Next
y.EntireRow.Delete xlUp
End With
End Sub
它只是一次删除所有范围(您想要删除的范围)。
如果您有任何疑问,请询问:)
答案 1 :(得分:1)
试试这个:
Sub fix3()
Dim intEnd As Long
Dim ws As Worksheet
Dim i As Long
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Application.EnableEvents = False
On Error GoTo getout
Set ws = Sheets("Sheet1") 'Change to your sheet
ws.Cells.Replace What:="pcs", Replacement:="", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
intEnd = ws.Range("I" & ws.Rows.Count).End(xlUp).row
For i = intEnd To 25
If Int(ws.Cells(i, "I").Value) = 0 Then
ws.Rows(i).Delete
End If
Next i
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Application.EnableEvents = True
Exit Sub
getout:
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub