Excel VBA 复制到另一个工作表时跳过空白

WaveWalker116

我知道以前有人问过这个问题,我一直在阅读其他几个关于如何在将数据复制到另一张工作表时跳过空白行的主题,但我似乎无法让这些建议起作用。

我的电子表格有一个表单,用户使用下拉菜单填写。然后他们可以编辑表单上的数据以适合他们的特定项目,其中可能包括删除数据,这会留下一个空白行。然后他们按下一个按钮,它将数据复制到另一张纸上。

现在,代码复制数据,但如果表单上有空白,它会在任务列表上创建一个空白行。我试图让它停止,这样即使表单中有空白,当它把数据粘贴到任务列表时,它们都是一行一行的。

这是我现在使用的代码:

Sub Task_Entry()

Application.ScreenUpdating = False

Dim InstalDesc As String
Dim AssignedTo As String
Dim Model As Range
Dim Drawing As Range
Dim Index As Long
Dim m As Long, n As Long

Application.ScreenUpdating = False
'Copy data from the input screen to the task list.
Sheets("Task Entry Form").Select
InstalDesc = Range("D3")
AssignedTo = Range("G2")
Set Model = Range("D5", Cells(Rows.Count, "D").End(xlUp)).Resize(, 2)
Set Drawing = Range("I5", Cells(Rows.Count, "I").End(xlUp)).Resize(, 2)

Index = Range("Q2")
With Sheets("Task List")
    'get last row
    n = .Range("D:X").Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    
    If n = 3 Then n = 4 Else n = n + 2
    'color first row
    .Range("A" & n & ":Z" & n).Interior.Color = 15189684
    .Cells(n, "D") = InstalDesc & " Summary"
    
    Model.Columns(1).Copy
    .Cells(n + 1, "E").PasteSpecial xlPasteValues
    Model.Columns(2).Copy
    .Cells(n + 1, "Q").PasteSpecial xlPasteValues
    
    Drawing.Columns(1).Copy
    .Cells(n + Model.Rows.Count + 1, "F").PasteSpecial xlPasteValues
    Drawing.Columns(2).Copy
    .Cells(n + Model.Rows.Count + 1, "Q").PasteSpecial xlPasteValues

    'get last row after inserting data
    m = .Range("D:X").Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    

Range("a2").Select
         
End With
Application.ScreenUpdating = True
Reset_Form

Sheets("Task Entry Form").Select

Range("D3").Select

End Sub

非常感激任何的帮助!

法尼杜鲁

请更换这部分:

'your existing code
    Model.Columns(1).Copy
    .Cells(n + 1, "E").PasteSpecial xlPasteValues
    Model.Columns(2).Copy
    .Cells(n + 1, "Q").PasteSpecial xlPasteValues
    
    Drawing.Columns(1).Copy
    .Cells(n + Model.Rows.Count + 1, "F").PasteSpecial xlPasteValues
    Drawing.Columns(2).Copy
    .Cells(n + Model.Rows.Count + 1, "Q").PasteSpecial xlPasteValues
'your existing code

'your existing code
  If Model.rows.count > 1 Then
    Model.Columns(1).SpecialCells(xlCellTypeConstants).Copy 'creates a discontinuous range without spaces
    .Cells(n + 1, "E").PasteSpecial xlPasteValues
    Model.Columns(2).SpecialCells(xlCellTypeConstants).Copy
    .Cells(n + 1, "Q").PasteSpecial xlPasteValues
  Else
    Model.Columns(1).Copy
    .Cells(n + 1, "E").PasteSpecial xlPasteValues
    Model.Columns(2).Copy
    .Cells(n + 1, "Q").PasteSpecial xlPasteValues
  End If
  If Drawing.rows.count > 1 Then
    Drawing.Columns(1).SpecialCells(xlCellTypeConstants).Copy
    .Cells(n + Model.Rows.Count + 1, "F").PasteSpecial xlPasteValues
    Drawing.Columns(2).SpecialCells(xlCellTypeConstants).Copy
    .Cells(n + Model.Rows.Count + 1, "Q").PasteSpecial xlPasteValues
  Else
    Drawing.Columns(1).Copy
    .Cells(n + Model.Rows.Count + 1, "F").PasteSpecial xlPasteValues
    Drawing.Columns(2).Copy
    .Cells(n + Model.Rows.Count + 1, "Q").PasteSpecial xlPasteValues
  End If
'your existing code

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

搜索唯一的数字和thier具体的数据复制到另一个工作表在Excel VBA代码

VBA尝试将工作表复制到另一个工作簿时返回错误1004

VBA将工作表复制到另一个工作簿

我如何在excel中将范围从一个工作簿复制到另一个工作簿而不必在VBA中命名呢?

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

Excel VBA:将“形状”(图片)复制到另一个工作簿会使图片另存为JPEG而不是PNG

将数据行复制到Excel中的另一个工作表并添加列VBA

Excel VBA缩短代码以将值从一个范围复制到另一个范围

在Excel中将某些特定单元格从一个工作表复制到另一个工作表的VBA是什么?

Excel VBA-根据数组匹配将整个行复制到另一个工作表

Excel VBA通过循环将匹配信息从一个工作表复制到另一个工作表

在Excel VBA中命名对象,以便将其复制到另一个工作表/工作簿后就可以选择它

使用VBA根据列名将数据从一个Excel工作表复制到另一个(复杂)工作表

不复制到A列时无法将数据从一个Excel工作表复制到另一个工作表

Excel 2013将工作表复制到另一个工作簿时创建外部链接

如何使用Excel VBA将一个图像复制到另一个图像

Excel VBA:使用R1C1公式将范围内的值复制到另一个工作簿

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

将工作表复制到另一个工作簿VBA

将行复制到具有多个范围内多个条件的另一个工作表 VBA Excel

使用 VBA 将工作表复制到另一个工作簿

将工作表中的范围复制到另一个工作表 VBA

从一个 Excel 应用程序复制到工作表而不更改日期 VBA EXCEL

Excel:使用 VBA 将行复制到另一个工作表中的表格

有没有什么快速的方法可以通过分析 Excel VBA 中的多列将重复行(彼此相邻)从工作表复制到另一个工作表?

如何根据值excel VBA将多行复制到特定单元格中的另一个工作表

使用VBA将多行从一个excel文件复制到另一个

如果单元格值大于0,excel vba将单元格复制到另一个工作表

Excel VBA - 查找不匹配的行并将其复制到另一个工作表