vba excel复制到另一张表

时间:2016-07-16 04:28:09

标签: excel-vba vba excel

我想通过以下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 个答案:

答案 0 :(得分:1)

代码会在UsedRange中查找Sheet2的最后一行,即使某些单元格为空。然后,它会将数据从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