【问题标题】:Copy excel data from one sheet to another将excel数据从一张表复制到另一张表
【发布时间】:2020-08-02 17:33:51
【问题描述】:

我有一个名为“任务”的 Excel 表,其中包含两个选项卡“数据”和“数据库任务”。我想将数据从工作表“数据”复制到“数据库任务”。工作表“数据”有五列(例如 A、B、C、D、E、F)。我希望如果有人在第一行输入数据,它应该被转移到另一个选项卡。如果任何一列未填充,则应在将数据传输到另一张表之前弹出一个输入值的窗口。如果第二行包含所有数据,则应将其转移到另一张纸上,并且仅对第一行给出错误。

我正在使用以下代码复制数据,它成功地将数据从一张纸复制到另一张纸。现在我不确定我应该如何有效地使用 if 条件才能实现我想要的

Dim sheet1 As Worksheet
Dim sheet2 As Worksheet
Dim endrow As Long

Set sheet1 = ActiveWorkbook.Sheets("Data")
Set sheet2 = ActiveWorkbook.Sheets("Delivery Task")

Application.ScreenUpdating = False

         endrow = sheet2.Range("A" & sheet2.Rows.Count).End(xlUp).Row
         sheet1.Range("A2:E10").Copy
         sheet2.Activate
         sheet2.Range("A" & endrow + 1).PasteSpecial Paste:=xlPasteValues
         Application.CutCopyMode = False
         sheet1.Activate
         Range("A2:E10").ClearContents

End Sub

【问题讨论】:

  • 看看这个及其答案以获得一些想法:stackoverflow.com/q/30575923/4961700
  • “它应该转移到另一个标签”是否意味着复制到另一个工作表中?无论如何,您应该使用Worksheet_Change 事件来触发单元格更改,检查前两行是否已完成更改并根据需要处理数据。但尽量避免激活。您的代码中的所有内容都可以在没有它的情况下完成

标签: excel vba nonblank


【解决方案1】:

即使我是 VBA 新手,请让我帮忙。您可以使用此子检查是否为特定行填充了所有列,并根据第 8 列的值,您可以复制和传输文件

FindEmptyCells()
     Dim colnum As Long
     Dim rownum As Long
     Dim lastrow As Long
     lastrow = Sheets("Data").Range("A" & Rows.count).End(xlUp).Row
     For rownum = 1 To lastrow
     For colnum = 1 To 5
      If IsEmpty(Cells(rownum, colnum)) Then   '<== To Check for Empty Cells
     Cells(rownum, 8) = "Data Incomplete"      '<== To Enter value if empty cell found
     Else
     Cells(rownum, 8) = "OK"
     End If
     Next colnum
     Next rownum
End Sub

【讨论】:

  • 感谢您的帮助。我用了你的逻辑,不知何故我能够实现我想要的。谢谢
  • 快乐是我的全部。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多