我想通过以下2个问题获得一些帮助:
首先,
我有Sheet1循环并从网站获取不同的值
B68,B69,B67,A61,D85和B73,我想写VBA来按顺序复制Sheet2中的这些值
A1,B1,C1,D1,E1,F1
但是我的当前代码如果Sheet1任何单元格为空它将移位复制的单元格(向上(结束(xlUP),我需要创建下一行的每组数据,无论值如何,甚至一些复制的单元格都是空的。 ..
其次,
添加条件,每当Sheet1中的D85为空时,它将从单元格D86复制值,关注D86的值......
DoEvents
'Copy to Another sheet
With Worksheets("Sheet2")
.Range("A" & Rows.Count).End(xlUp).Offset(1, 0) = ws.Range("B68")
.Range("B" & Rows.Count).End(xlUp).Offset(1, 0) = ws.Range("B69")
.Range("C" & Rows.Count).End(xlUp).Offset(1, 0) = ws.Range("B67")
.Range("D" & Rows.Count).End(xlUp).Offset(1, 0) = ws.Range("A61")
.Range("E" & Rows.Count).End(xlUp).Offset(1, 0) = ws.Range("D85")
.Range("F" & Rows.Count).End(xlUp).Offset(1, 0) = ws.Range("B73")
End With
答案 0 :(得分:1)
代码会在UsedRange
中查找Sheet2
的最后一行,即使某些单元格为空。然后,它会将数据从ws
表格复制到Sheet2
。
Dim des_ws As Excel.Worksheet
Set des_ws = ActiveWorkbook.Worksheets("Sheet2")
LastRow = des_ws.UsedRange.Rows(des_ws.UsedRange.Rows.count).row + 1
With des_ws
.Range("A" & LastRow) = ws.Range("B68")
.Range("B" & LastRow) = ws.Range("B69")
.Range("C" & LastRow) = ws.Range("B67")
.Range("D" & LastRow) = ws.Range("A61")
If ws.Range("D85") = "" Then
.Range("E" & LastRow) = ws.Range("D86")
Else
.Range("E" & LastRow) = ws.Range("D85")
End If
.Range("F" & LastRow) = ws.Range("B73")
End With