【问题标题】:How to delete /remove blank row in an excel using VB script如何使用VB脚本删除/删除Excel中的空白行
【发布时间】:2014-07-23 21:37:13
【问题描述】:

我有一个脚本,我将在其中比较两个 excel 数据,并将匹配的数据写入第三个 excel。脚本完美运行并将匹配数据写入第三个 excel。问题是它为不匹配的数据创建了一个空行。不知道如何删除空行或如何防止它写入空数据。

  • 在第一个 Excel 工作簿 "C:\Excelone.xls" 中,A 列的值为 1,2,3,4,5,6
  • 在第二个 Excel 工作簿 "C:\Exceltwo.xls" 中,A 列的值为 1,ab,3,ac,5,6
  • 所以经过比较,第三个excel工作簿(A列)的输出写成1,Empty,3,Empty,5,6

我需要的输出是1,3,5,6

请帮助我解决问题。请找到以下脚本

            Set myxl = createobject("excel.application")
            myxl.Workbooks.Open "C:\Excelone.xls"
            myxl.Application.Visible = true
            set mysheet = myxl.ActiveWorkbook.Worksheets("Sheet1")
            Set myx2 = createobject("excel.application")
            myx2.Workbooks.Open "C:\Exceltwo.xls"
            myx2.Application.Visible = true
            set mysheet1 = myx2.ActiveWorkbook.Worksheets("Sheet1")
            Set myx3 = createobject("excel.application")
            myx3.Workbooks.Open "C:\Excelthree.xls" 
            myx3.Application.Visible = true
            set mysheet3 = myx3.ActiveWorkbook.Worksheets("Sheet1")
            row=0

            'With mysheet.UsedRange  
                For each search_data in mysheet.UsedRange
                row = row+1
                    For each search_data1 in mysheet1.UsedRange
                             If search_data=search_data1    Then  

                                    mysheet3.cells(row,1).value=search_data1

                                Exit For 
                             End If 
                     Next
                Next         
            'End With

            myxl.ActiveWorkbook.Save
            myxl.ActiveWorkbook.Close
            myxl.Application.Quit
            Set mysheet =nothing
            Set myxl = nothing

【问题讨论】:

    标签: excel vbscript


    【解决方案1】:

    尝试在成功匹配的循环内移动计数器(row = row+1),即

    For each search_data in mysheet.UsedRange   
    'row = row+1            
       For each search_data1 in mysheet1.UsedRange
                If search_data=search_data1  Then  
                        row = row+1 
                        mysheet3.cells(row,1).value=search_data1
                        Exit For 
                End If 
       Next
    Next    
    

    【讨论】:

    • 谢谢你,它工作的。我觉得,我是多么不擅长编码。如此简单的逻辑。
    猜你喜欢
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多