繁体   English   中英

VBA Excel复制到另一张表

[英]vba excel copy to another sheet

我想从以下两个问题获得帮助:

第一,

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

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

A1,B1,C1,D1,E1,F1

但是用我当前的代码,如果Sheet1中任何单元为空,它将移动复制的单元(up(End(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

即使某些单元格为空,代码UsedRangeSheet2UsedRange的最后一行。 然后将数据从ws sheet复制到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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM