将其他表的范围的值按顺序填入插入,并涉及清除剪贴板
该示例将Date表里面L2到L25范围的值,按顺序插入到计算表的D列。
具体动作为:首先取得Date表中L2到L25的范围值,
之后将范围值用For Each循环,并从第2行开始,逐行复制计算表里面的每行的值,
然后将循环到的Date表里面的值写入到被复制的D列
最后的时候删除多复制的一行即可,删除时清楚剪切版的内容,释放空间(感觉然并卵)
为了防止程序卡住,可以以每执行2000行打印一条数据看一看,这样就能知道是否程序还在工作(被注释掉的 If i Mod 2000 = 0 的部分)
Sub InsertData()
i = 2
Dim wsDate As Worksheet
Set wsDate = ThisWorkbook.Worksheets("Date")
Data0s = wsDate.Range("L2:L25").Value
col = "D"
'画面更新暂停
Application.ScreenUpdating = False
For Each Data0 In Data0s
Rows(i + 1).Insert shift:=xlShiftDown
Range(Cells(i, "A"), Cells(i, "G")).Copy
Cells(i + 1, 1).PasteSpecial
Cells(i, col) = Data0
i = i + 1
Next Data0
Rows(i).Delete
'清除剪切板内容
Application.CutCopyMode = False
DoEvents
Debug.Print i
' If i Mod 2000 = 0 Then
' Debug.Print i
' End If
Loop While Cells(i, "A") <> ""
'画面更新恢复
Application.ScreenUpdating = True
End Sub