【问题标题】:Excel Macro - Copy specific cells based on criteriaExcel 宏 - 根据条件复制特定单元格
【发布时间】:2020-03-12 23:22:11
【问题描述】:

我正在尝试找到一种通过宏从 Excel 工作表中复制特定数据的方法。我一直在进行大量的 google 和 youtube 搜索,但都不够用。

我需要 A 列中以 9 开​​头的所有数字 来自 B 列的产品名称 - 这应该忽略带有 G Street VIC 和 C Street NSW 的单元格 Total右侧的4个单元格值(包括0):单元格

此数据应放在同一文档中单独工作表的一行中。

例如: 9343907003122 面板15W
位置 1 G Street VIC 18 0 0 18 总计:18 0 0 18

最终应该看起来像: 9343907003122 面板15W 18 0 0 18

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    假设数字在 Sheet1 的 A 列中,并且单行写入 Sheet2。

    Option Explicit
    
    Sub mymacro()
    
        Dim wb As Workbook, ws As Worksheet, wsOut As Worksheet
        Dim cell As Range
        Dim iLastRow As Long, iOutRow As Long
        iOutRow = 0
    
        Set wb = ThisWorkbook
        Set ws = wb.Sheets("Sheet1")
        Set wsOut = wb.Sheets("Sheet2")
    
        iLastRow = ws.Range("C" & Rows.Count).End(xlUp).Row
        For Each cell In ws.Range("A1:A" & iLastRow)
    
            If cell.Value Like "9###########" Then ' 12 digit starting 9
    
                iOutRow = iOutRow + 1
                cell.Resize(1, 2).Copy wsOut.Cells(iOutRow, 1)
    
            ElseIf LCase(cell.Offset(0, 1)) Like "total*" Then
    
                cell.Offset(0, 2).Resize(1, 4).Copy wsOut.Cells(iOutRow, 3)
    
            End If
    
        Next
    
        MsgBox iOutRow & " rows created on " & wsOut.Name, vbInformation
    
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-15
      • 1970-01-01
      • 1970-01-01
      • 2012-07-16
      • 1970-01-01
      相关资源
      最近更新 更多