如何在下一个空单元格中复制和粘贴动态表值?
Posted
技术标签:
【中文标题】如何在下一个空单元格中复制和粘贴动态表值?【英文标题】:How to copy and paste dynamic table values in next empty cell? 【发布时间】:2019-10-29 20:25:15 【问题描述】:我希望从动态表中选择具有值的单元格,然后将这些值复制并粘贴到另一个工作表中,其中包含下一个空单元格可用的表。
我只能找到将定义的范围复制并粘贴到下一个空单元格中的代码,或者复制并粘贴包含一些值和空单元格的动态范围。
Sub SaveKit_1()
Dim wsCopy As Worksheet
Dim wsDest As Worksheet
Dim lCopy As Long
Dim lDest As Long
Set wsCopy = Worksheets("Kit_db") 'Copies table from Kit_db worksheet
Set wsDest = Worksheets("Kit_db (1)") 'Pastes table to Kit_db (1) worksheet
lCopy = wsCopy.Cells(wsCopy.Rows.Count, "E").End(xlUp).Row
lDest = wsDest.Cells(wsDest.Rows.Count, "E").End(xlUp).Offset(1).Row
'Copies any cell within the table
wsCopy.Range("B3:I" & lCopy).Copy _
wsDest.Range("B" & lDest)
End Sub
动态表格中的所有单元格都被复制和粘贴,而不是表格中带有值的单元格。我只想粘贴值,因为动态表中的某些单元格有公式。
我尝试了以下选择性粘贴
PasteSpecial _
Paste:=xlPasteValuesAndNumberFormats, _
Operation:=xlPasteSpecialOperationNone, _
SkipBlanks:=True, _
Transpose:=False
但我认为我没有将其与现有代码正确放置,或者我使用了错误类型的代码进行粘贴。
【问题讨论】:
粘贴特殊值、粘贴值或进行值传输。 通过调整目标大小来传输值,如果您对格式不感兴趣,请保留复制粘贴。 @JvdV 我对 vba 还是很陌生,我该怎么做? 【参考方案1】:以下是使用您的代码粘贴特殊值的示例
Sub SaveKit_1()
Dim wsCopy As Worksheet
Dim wsDest As Worksheet
Dim lCopy As Long
Dim lDest As Long
Set wsCopy = Worksheets("Kit_db") 'Copies table from Kit_db worksheet
Set wsDest = Worksheets("Kit_db (1)") 'Pastes table to Kit_db (1) worksheet
lCopy = wsCopy.Cells(wsCopy.Rows.Count, "E").End(xlUp).Row
lDest = wsDest.Cells(wsDest.Rows.Count, "E").End(xlUp).Offset(1).Row
'Copies any cell within the table
wsCopy.Range("B3:I" & lCopy).Copy
wsDest.Range("B" & lDest).PasteSpecial xlPasteValues
End Sub
【讨论】:
这很好用。有没有办法只复制带有值的表格单元格?我已经尝试过这段代码,它也复制了表格中的空白单元格,而不仅仅是带有值的单元格。 有没有办法只复制带有值的表格单元格?是的,您想摆脱空白行或空白列或每个空白单元格,复制任何空白单元格的屏幕截图并且您想摆脱它们? 我希望删除表中最后一行数据之后的所有非值单元格(行)。这有意义吗?以上是关于如何在下一个空单元格中复制和粘贴动态表值?的主要内容,如果未能解决你的问题,请参考以下文章
Vba找到第一个空单元格并平均它上面的4个单元格并将值粘贴到另一个单元格中