首页 文章

vba excel复制到另一张表

提问于
浏览
0

我想通过以下2个问题得到一些帮助:

第一,

我有Sheet1循环并从网站获取不同的值为单元格

B68,B69,B67,A61,D85和B73,我想编写VBA来按顺序复制Sheet2中的这些值

A1,B1,C1,D1,E1,F1

但是对于我当前的代码,如果Sheet1任何单元格为空,它将移位复制的单元格(向上(结束(xlUP),我需要创建下一行的每一组数据,无论值如何,甚至一些复制的单元格都是空的...

第二,

添加条件,每当Sheet1中的D85为空时,它将从单元格D86复制值,关注D86的值...

DoEvents

    'Copy to Another sheet

    With Worksheets("Sheet2")
        .Range("A" & Rows.Count).End(xlUp).Offset(1, 0) = ws.Range("B68")
        .Range("B" & Rows.Count).End(xlUp).Offset(1, 0) = ws.Range("B69")
        .Range("C" & Rows.Count).End(xlUp).Offset(1, 0) = ws.Range("B67")
        .Range("D" & Rows.Count).End(xlUp).Offset(1, 0) = ws.Range("A61")
        .Range("E" & Rows.Count).End(xlUp).Offset(1, 0) = ws.Range("D85")
        .Range("F" & Rows.Count).End(xlUp).Offset(1, 0) = ws.Range("B73")


    End With

1 回答

  • 1

    即使某些单元格为空,代码也会在 Sheet2 中查找 UsedRange 的最后一行 . 然后它将数据从 ws 表复制到 Sheet2 .

    Dim des_ws As Excel.Worksheet
    
    Set des_ws = ActiveWorkbook.Worksheets("Sheet2")
    
    LastRow = des_ws.UsedRange.Rows(des_ws.UsedRange.Rows.count).row + 1
    
    With des_ws
        .Range("A" & LastRow) = ws.Range("B68")
        .Range("B" & LastRow) = ws.Range("B69")
        .Range("C" & LastRow) = ws.Range("B67")
        .Range("D" & LastRow) = ws.Range("A61")
        If ws.Range("D85") = "" Then
            .Range("E" & LastRow) = ws.Range("D86")
        Else
            .Range("E" & LastRow) = ws.Range("D85")
        End If
        .Range("F" & LastRow) = ws.Range("B73")
    End With
    

相关问题