2017-10-18 26 views
0

我需要在實現我的excel表下面的幫助下一個主MACRO VBA代碼宏行殺手+轉換所有領域零+另存爲.xls的

  1. 如果A列中包含0 - 刪除整行。 (行殺手) - 這應該在工作簿中的

  2. 由於Excel文件重聯的所有工作表上運行 - 所有字段需要轉換爲數值(例如粘貼爲值)

  3. 保存爲文件.xls格式與文件名SAMAmonthlyReport

我有代碼從這個網站的點2和3,但需要幫助添加1點。

下面是代碼

Sub CopyValuesToSync() 
    Dim OrigWkbkFpth As String 
    Dim OrigWkbk As String 
    Dim ValueWkbk As String 
    Dim WS As Worksheet 

    Application.ScreenUpdating = False 
    Application.DisplayAlerts = False 

    OrigWkbkFpth = Application.ActiveWorkbook.FullName 
    OrigWkbk = Application.ActiveWorkbook.Name 

    For Each WS In ActiveWorkbook.Worksheets 
     WS.Select 
     Cells.Select 
     Selection.Copy 
     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 
     Application.CutCopyMode = False 
     Range("A1").Select 
    Next WS 

    ActiveWorkbook.SaveAs Filename:="C:\SAMA\SamaMonthly.xls", _ 
    FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False 

    ValueWkbk = Application.ActiveWorkbook.Name 

    Workbooks.Open Filename:=OrigWkbkFpth 
    Windows(ValueWkbk).Activate 
    ActiveWindow.Close 
    Windows(OrigWkbk).Activate 

    Application.ScreenUpdating = True 
    Application.DisplayAlerts = True 
End Sub 
+2

的可能的複製刪除該行[刪除整行如果單元格包含字符串X](https://stackoverflow.com/questions/17606045/delete-entire-row-if-cell-contains-the-string-x)只需在您的'For Each WS In ActiveWorkbook中包含。工作表循環,類似於該問題中推薦的代碼。 – YowE3K

+0

當我在循環中插入代碼時,它不工作。 – Farhan

回答

0

您可以添加驗證在列中的每個單元使用的東西。類似的If cells(oRow,1).Value = 0 Then,然後你可以用 Rows(oRow).EntireRow.Delete

+0

你能指導我在哪裏需要在我提到的主代碼中插入行嗎?我是VBA的新手 – Farhan

+0

在保存工作簿之前,您可以插入if塊。 – 2017-10-20 15:17:01

+0

我正在運行 - 時間錯誤:1004 我已插入下方如果塊「下一步WS」行之後 如果將細胞(oRow,1)。價值= 0然後行(oRow).EntireRow.Delete – Farhan