我有一个名为“ Task”的Excel工作表,其中包含两个选项卡“ Data”和“ DB-Task”。我想将数据从工作表“数据”复制到“数据库任务”。工作表“数据”有五列(例如A,B,C,D,E,F)。我希望如果有人在第一行中输入数据,则应将其转移到另一个选项卡。如果未填充任何列,则应在将数据传输到另一张表之前给出一个弹出窗口以输入值。并且如果第二行具有所有数据,则应将其转移到另一张纸上,并且仅对第一行给出错误。
我正在使用以下代码复制数据,并且它已成功将数据从一张纸复制到另一张纸。现在,我不确定如何有效地使用条件来实现我想要的目标
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
答案 0 :(得分:0)
虽然我是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