我正在创建一个表来跟踪社交媒体渠道,并使用VBA自动复制/粘贴数据以进行选择。
这是我第一次使用VBA,所以我有点挣扎...
我已编写此代码:
Sub Copy_Results_LeukaTwitter()
Sheets("Twitter_LeukaPasteSheet").Select
Range("B2:B50").Select
Selection.Copy
Sheets("SocialResults").Select
Range("b2").Select
ActiveSheet.Paste
Range("a2:a50") = "Twitter - @leadleukaemia"
Sheets("Twitter_LeukaPasteSheet").Select
Range("F2:F50").Select
Selection.Copy
Sheets("SocialResults").Select
Range("G2").Select
ActiveSheet.Paste
Sheets("Twitter_LeukaPasteSheet").Select
Range("G2:G50").Select
Selection.Copy
Sheets("SocialResults").Select
Range("F2").Select
ActiveSheet.Paste
Sheets("Twitter_LeukaPasteSheet").Select
Range("H2:H50").Select
Selection.Copy
Sheets("SocialResults").Select
Range("H2").Select
ActiveSheet.Paste
Sheets("Twitter_LeukaPasteSheet").Select
Range("D2:D50").Select
Selection.Copy
Sheets("SocialResults").Select
Range("c2").Select
ActiveSheet.Paste
End Sub
现在,我要确保仅复制包含数据的行,然后将数据粘贴到“ SocialResults”中的下一个可用行上 我不知道该怎么做。...
这是我从Twitter_LeukaPasteSheet粘贴的数据的屏幕截图
答案 0 :(得分:1)
您不应该使用复制/粘贴,因为这样做效率很低。该代码将首先查看“社交结果”表上最后使用的行,然后加1(因为这是新数据应开始插入的行)。然后,只需将单元格设置为所需的大小即可,而不是复制/粘贴。由于不需要其他工作表,因此速度更快。
Sub Copy_Results_LeukaTwitter()
Dim lngRow As Long
Dim shtTo As Worksheet, shtFrom As Workbook
'Sets the sheet that the data will be copied to and from
Set shtTo = Sheets("SocialResults")
Set shtFrom = Sheets("Twitter_LeukaPasteSheet")
'finds the last row in that sheet with data and adds 1; assuming that column A has data (if not change the column name)
lngRow = shtTo.Cells(shtTo.Rows.Count, "A").End(xlUp).Row + 1
'set values
shtTo.Range("B" & lngRow & ":B" & lngRow + 49).Value = shtFrom.Range("B2:B50").Value
shtTo.Range("A" & lngRow & ":A" & lngRow + 49).Value = "Twitter - @leadleukaemia"
shtTo.Range("G" & lngRow & ":G" & lngRow + 49).Value = shtFrom.Range("F2:F50").Value
shtTo.Range("F" & lngRow & ":F" & lngRow + 49).Value = shtFrom.Range("G2:G50").Value
shtTo.Range("H" & lngRow & ":H" & lngRow + 49).Value = shtFrom.Range("H2:H50").Value
shtTo.Range("C" & lngRow & ":C" & lngRow + 49).Value = shtFrom.Range("D2:D50").Value
End Sub