如何使用CopyFromRecordset(excel vba)执行“插入行”而不是“复制行”

我是新的excel VBA。 我有一个要求,我必须将表值从SQL Server 2005复制到Excel工作表。 我已经用googlesearch了一下上面的代码(下面列出)。

在这个Excel表格中有固定的一组显示图例和date的行。 打印数据库/表格值后应显示这些行。 正如我使用.CopyFromRecordset将logging集中的logging复制到Excel表,显示图例和date的行将被数据库/表值覆盖。 请让我知道如何执行插入行而不是复制。 或者有什么办法来达到上述目的。

– -码 – – – – – –

Sub GETSQLSERVERDATA() Dim Cn As ADODB.Connection Dim Server_Name As String Dim Database_Name As String Dim User_ID As String Dim Password As String Dim SQLStr As String Dim USERID As String Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset USERID = Range("C1").Value 'Input form excel template. Server_Name = "" 'Enter server name Database_Name = "" 'Enter database name User_ID = "" 'SQL server user id Password = "" SQL server password SQLStr = "SELECT END_DATE,PERIOD FROM PERIOD_MAP WHERE USERID='" + USERID + "'" Set Cn = New ADODB.Connection Cn.Open "Driver={SQL Server};Server=" & Server_Name & ";Database=" & Database_Name & _ ";Uid=" & User_ID & ";Pwd=" & Password & ";" rs.Open SQLStr, Cn, adOpenStatic With Worksheets("Sheet1").Range("A2:D2") ' Enter your sheet name and range here .ClearContents .CopyFromRecordset rs End With rs.Close Set rs = Nothing Cn.Close Set Cn = Nothing End Sub 

您可以在复制rs之前插入行?

 Worksheets("Sheet1").Rows(Worksheets("Sheet1").Range("A2:D2").Row).Insert _ Shift:=xlDown, _ CopyOrigin:=xlFormatFromLeftOrAbove