我是stackoverflow的新手,也是VBA的初学者。我正在为我的报告准备代码,该代码将过滤A列中的空白单元格,同时过滤E列中的空白单元格。如果两个都为空,则需要将信息放回A列“无值”和B列中和C放'0'。 我有一段无效的代码。即使E列中的单元格不为空,它也会在A列中放置“无值”,在B,C列中放置“ 0”。这是我所拥有的:
'filtering columns A to AE based on data in columns W and AB
LastRow = ActiveWorkbook.Sheets("DATASOURCE").Cells(ActiveWorkbook.Sheets("DATASOURCE").Rows.Count, "A").End(xlUp).Row
With DATASOURCE.Range("$A$1:$F$" & LastRow)
.AutoFilter Field:=1, Criteria1:="="
.AutoFilter Field:=5, Criteria2:="="
LastRow = ActiveWorkbook.Sheets("DATASOURCE").Cells(ActiveWorkbook.Sheets("DATASOURCE").Rows.Count, "A").End(xlUp).Row
If LastRow > 2 Then
.Range(.Range("A2"), .Range("A" & LastRow)). _
SpecialCells(xlCellTypeVisible).Value = "NO VALUE"
.Range(.Range("B2"), .Range("X" & LastRow)). _
SpecialCells(xlCellTypeVisible).Value = "0"
.Range(.Range("C2"), .Range("Y" & LastRow)). _
SpecialCells(xlCellTypeVisible).Value = "0"
End If
End With
On Error Resume Next
DATASOURCE.ShowAllData
On Error GoTo 0
Columns("A:C").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "=R[-1]C"
Range("A2:C2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False