复制值不是列vba的公式

时间:2015-08-23 13:28:57

标签: excel vba excel-vba

我尝试复制值时出现问题...

假设A33的值为1655,单元格的公式为IFERROR('L-Logic'!G14;“”),复制时显示0,如果我点击复制的单元格,则显示公式。这是为什么?我应该粘贴特殊值吗?有什么建议吗?

我是在正确的道路上吗?如果我不想查看单元格值,我正在考虑使用它..

如果ws.Cells(i,1)<> “blabla”然后ws.Range(“A1:A50”& lastrow)。复制目的地:=工作

以下是我的示例代码。此致

For Each Ws In Sheets(Array("List 1", "list 2", "List3"))

        lastrow = Ws.Range("A" & Rows.Count).End(xlUp).row

For i = 1 To lastRow
If ws.cells(i, 1)<> "testtest" Then

         Ws.Range("C1:C50" & lastrow).Copy Destination:=Worksheets("Master list").Range("D" & lastRowMaster)
         Ws.Range("A1:A50" & lastrow).Copy Destination:=Worksheets("Master list").Range("A" & lastRowMaster)
        Ws.Range("L1:L50" & lastrow).Copy Destination:=Worksheets("Master list").Range("B" & lastRowMaster)
         Ws.Range("L1:L50" & lastrow).Copy Destination:=Worksheets("Master list").Range("C" & lastRowMaster)
        lastRowMaster = lastRowMaster + Range("C1:C" & lastrow).Rows.Count
         Next i
Next

1 个答案:

答案 0 :(得分:0)

我喜欢你对lastRowMaster所做的一切。

对于直接价值转移,您可以撤销它们。

lrm = 1
With Worksheets("MasterList")
    For Each ws In Sheets(Array("List1", "List2", "List3"))
        lr = ws.Range("A" & Rows.Count).End(xlUp).Row
        .Range("D" & lrm).Resize(lr, 1) = ws.Range("C1:C" & lr).Value2
        .Range("A" & lrm).Resize(lr, 1) = ws.Range("A1:A" & lr).Value2
        .Range("B" & lrm).Resize(lr, 1) = ws.Range("L1:L" & lr).Value2
        .Range("C" & lrm).Resize(lr, 1) = ws.Range("L1:L" & lr).Value2
        lrm = lrm + Range("A1:A" & lr).Rows.Count
    Next

    '...

End With

需要调整目标的大小以适应价值转移。仅仅像复制和粘贴一样引用顶部单元格是不够的。小心从第7行开始的那些。你必须做一些小数学才能使Range.Resize property正确。