将值复制并粘贴到另一个工作表excel宏

纳撒尼尔·阿尼多(Nathaniel Arnido)国会

我是Macro的新手,我想创建一个简单的复制并将excel公式从一张纸粘贴到另一张纸。但是事情是主要数据在单元格内部有一个公式,它不会让我将其值复制并粘贴到另一个单元格中。

Sub selectpasting()
Dim Lastrow As Long, erow As Long


Lastrow = Sheets("attendance").Cells(Rows.Count, 1).End(xlUp).Row
For i = 3 To Lastrow


   If Sheets("attendance").Cells(i, 3) = "absent" Then

    Sheets("attendance").Cells(i, 1).copy
    erow = Sheets("forpasting").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row

    Sheets("attendance").Paste Destination:=Sheets("forpasting").Cells(erow, 1)


    Sheets("attendance").Cells(i, 3).copy
    Sheets("attendance").Paste Destination:=Sheets("forpasting").Cells(erow, 2)

End If

Next i


Application.CutCopyMode = False
Sheets("forpasting").Columns.AutoFit
Range("A1").Select

End Sub
Wizhi

更改此行:

Sheets("attendance").Paste Destination:=Sheets("forpasting").Cells(erow, 1)

至:

Sheets("forpasting").Cells(erow, 1).PasteSpecial xlValues

完整的代码为:

Sub selectpasting()
Dim Lastrow As Long, erow As Long
Dim i As Long

Lastrow = Sheets("attendance").Cells(Rows.Count, 1).End(xlUp).Row
For i = 3 To Lastrow


   If Sheets("attendance").Cells(i, 3) = "absent" Then

    Sheets("attendance").Cells(i, 1).Copy
    erow = Sheets("forpasting").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row

    Sheets("forpasting").Cells(erow, 1).PasteSpecial xlValues


    Sheets("attendance").Cells(i, 3).Copy
    Sheets("forpasting").Cells(erow, 2).PasteSpecial xlValues
End If

Next i


Application.CutCopyMode = False
Sheets("forpasting").Columns.AutoFit
Range("A1").Select

End Sub

上面的代码非常慢(尝试使用这两个代码,您会发现下面的代码更快)。原因是在上面的excel中需要确定/评估是否需要粘贴单元格属性,原因是“ .copy”。当您需要复制/粘贴单元格格式等时,这是一种方法。

在您的情况下,您只对单元格显示的值感兴趣。因此,您可以选择值并复制它。

因此,我建议您将其更改为:

Sub selectpasting_2()
Dim Lastrow As Long, erow As Long
Dim i As Long

Lastrow = Sheets("attendance").Cells(Rows.Count, 1).End(xlUp).Row
For i = 3 To Lastrow


   If Sheets("attendance").Cells(i, 3) = "absent" Then


    erow = Sheets("forpasting").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row

    Sheets("forpasting").Cells(erow, 1) = Sheets("attendance").Cells(i, 1)

    Sheets("forpasting").Cells(erow, 2) = Sheets("attendance").Cells(i, 3)
End If

Next i


Application.CutCopyMode = False
Sheets("forpasting").Columns.AutoFit
Range("A1").Select

End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Excel:创建一个宏以将活动选择复制并粘贴到另一个工作表中

如果值匹配,如何复制并粘贴到另一个工作表-Excel VBA

通过 VBA 将值复制并粘贴到另一个工作表

excel vba宏:将特定的列复制并粘贴到另一个工作簿中

宏可将行复制并粘贴到另一个工作表中,而无需粘贴到页面下

Excel VBA将特定的单元格复制并粘贴到另一个工作表

输入表格,Excel,VBA复制输入并粘贴到另一个工作表中

将公式复制到另一个工作表并将其作为值粘贴到特定列

如何通过匹配单元格值将范围复制并粘贴到另一个工作表

VBA 复制范围值并粘贴到另一个工作表中

将具有公式的范围复制/粘贴到另一个工作表

从一个工作表复制并粘贴到另一个工作表

根据特定条件将特定单元格值从一个工作表复制粘贴到另一个工作表

将具有一个工作表中的值的动态变量列复制并粘贴到另一个工作表中

宏VBA根据标题复制列并将其粘贴到另一个工作表中

VBA循环将值粘贴到另一个工作表中

python 脚本将行从 1 个 Excel 工作表粘贴到另一个。粘贴应该是“按值粘贴”

编辑特定标签时将谷歌工作表复制并粘贴到另一个谷歌工作表

将多个工作簿中的数据复制并粘贴到另一个工作簿中的工作表中

手动将日期格式从一个 Excel 工作表复制/粘贴到另一个时出现问题

VBA-如何将列中的最后一个值复制并粘贴到另一个工作表

Excel VBA宏复制单元格并粘贴到另一个

遍历工作簿并将值复制并粘贴到另一个工作簿(VBA、Excel)

VBA Excel-在列中找到一个值,粘贴到另一个工作表

复制工作簿并粘贴到另一个工作簿 MS Excel 下方

Excel VBA复制多个范围并粘贴到另一个工作表,没有空行

Excel-复制选定的单元格并粘贴到另一个工作表中列的末尾

从范围复制单元格值并将其粘贴到另一个工作表的单行中

将一个单元格从一个工作表复制并粘贴到另一个工作表,然后将其乘以一个值