使用VBA分组值

我在桌子上得到了以下数据,我想制作一个macros,它将所有的值用#N/A分组在底部。 请协助。

  ABCDE 1 Line Item Quantity Part Number Description 2 Line 1 Fan Motor 0 0 0 3 Line 2 Fan #N/A #N/A #N/A 4 Line 3 Fan guard 0 0 0 5 Line 4 Pump 0 0 0 6 Line 5 Access door 0 0 0 7 Line 6 Nozzle grommet 0 0 0 8 Line 7 Nozzle 0 0 0 9 Line 20 SST tube 0 0 0 10 Line 21 Flanges 2 205024M2P HDGFLG 11 Line 22 Part 11 #N/A #N/A #N/A 12 Line 23 Part 12 #N/A #N/A #N/A 16 Line 29 Terminal box 1 31123800P TERMINAL BOX 14 Line 25 Check Valve #N/A #N/A #N/A 15 Line 26 Buttefly Valve #N/A #N/A #N/A 17 Line 30 Solenoid valve 1 31601700P SOLENOID VALVE 1 PER8 18 Line 31 Coil 1 31602000P COIL FOR SOL. VALVE 

我最初使用下面的代码来删除值为#N/A

 Sub GroupRows() Dim rownum As Long For rownum = 1 To 1000 If Cells(rownum, 3).Text = "#N/A" Then Rows(rownum).Delete Next rownum Cells(rownum, 3).Activate End Sub 

但是

“编译错误:下一个没有For”

错误消息popup,事情是我仍然是新的VBA,还有一些我还不是很了解,所以我不知道我是否编码是正确的。

如果使用上次使用的行而不是固定的最大行数,则代码将如何显示。

 Sub GroupRows() Dim iRow As Long, lastRow As Long Dim ws As Worksheet Set ws = Worksheets("MySheetName") 'qualify your sheet lastRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row 'find last used row For iRow = lastRow To 1 Step -1 'run from last used row backwards to row 1 If ws.Cells(iRow, 3).Text = "#N/A" Or _ ws.Cells(iRow, 4).Text = "#N/A" Then ws.Rows(iRow).Delete End If Next iRow ws.Cells(iRow, 3).Activate End Sub 

你的代码是缺less一个End if你应该总是限定一个工作表像ws.Cellsws.Range一个CellsRange