2014-06-26 113 views
0

我正在處理一個將格式化Excel電子表格以導入到Access中的模塊。電子表格來自源頭,包含7行標題數據,我需要的數據以及數據下面的4行亂碼。到目前爲止,我已經通過刪除頭信息得到:根據條件通過Access VBA刪除Excel中的行

Sub ExcelFormat() 
Dim excelApp As Object 
Dim excelWB As Object 
Dim excelWS As Object 
Set excelApp = CreateObject("Excel.Application") 
Set excelWB = excelApp.workbooks.Open("Z:\Data\Test.xlsx") 
excelApp.screenupdating = True 
excelApp.Visible = True 
Set excelWS = excelWB.worksheets("TestData") 
excelWS.Rows("1:7").Delete 

我無法選擇A中的第一個空白單元格,並刪除它和它下面的4行。提前致謝。

+0

這是否回答幫助? http://stackoverflow.com/a/16901714/2258需要稍作修改。 –

回答

0

補充一點:

dim i as long 

'loop through every row in the used range 
for i = 1 to excelWS.usedrange.rows.count 

     'test if the cell in column A of the current row2 is blank 
     If excelWS.cells(i,1)="" then 

      'if the cell is blank, delete the row and the 4 rows beneath it, starting with the bottom most row 
      excelWS.rows(i+4).delete 
      excelWS.rows(i+3).delete 
      excelWS.rows(i+2).delete 
      excelWS.rows(i+1).delete 
      excelWS.rows(i).delete 

      'exit the loop 
      Exit for 

     end if 

next 

這將在第1行開始,經過一中的每一個細胞,直到它找到一個空白單元格。然後它將刪除該行及其下方的4行並停止。

如果您只是想刪除的最後5行數據:

dim i as long 

i = excelWS.usedrange.rows.count 

excelWS.usedrange.rows(i & ":" & i-4).delete 
+0

僅編輯最後五行的答案 – asp8811

0

首先刪除最後4行,之後的頭;

With ActiveSheet 
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row 
.Rows(LastRow - 4 & ":" & LastRow).Delete 
.Rows("1:7").Delete 
End With