Copy 方法 将单元格区域复制到指定的区域或剪贴板中。 语法:Copy(Destination) Destination 可选,指定区域要复制到的新域。 如果省略此参数,Microsoft Excel 会将区域复制到剪贴板。 注意,这个方法是带格式复制。 示例: With Range("a1") .Value = "www.excelpx.com" .Interior.Color= 49407 ‘设置A1单元格的填充色 .Copy Worksheet(2).Range("a1") .Copy Worksheets(2).Range("a2:c3") .Copy Worksheets(2).Range("c4:g5,e7,h8") End With
CopyFromRecordset 方法 将 ADO 或 DAO Recordset 对象中的内容复制到工作表,从指定区域的左上角开始。 如果 Recordset 对象包含具有 OLE 对象的字段,则该方法无效。 语法:CopyFromRecordset(Data, MaxRows, MaxColumns) Data 必选,复制到区域的 Recordset 对象。 MaxRows 可选,复制到工作表上的最大记录数。 如果省略该参数,将复制 Recordset 对象中的所有记录。 MaxColumns 可选,复制到工作表上的最大字段数。 如果省略该参数,将复制 Recordset 对象中的所有字段。 返回值:Long,代表写入到单元格内的记录数。
说明:复制从 Recordset 对象的当前行开始。 复制完成后,Recordset 对象的 EOF 属性为 True。 示例: 由于代码涉及到ADO组件,只需要注意到其中的CopyFromRecordset方法那几行就成了,配合效果截图理解方法。 Sub QueryForExcel()
Const adUseClient = 3
Const adModeRead = 1
Dim AdoConn As Object, AdoRst As Object
Dim strSQL$, strConn$
strSQL = "select * from [sheet3$]"
Set AdoConn = CreateObject("ADODB.Connection")
Select Case Application.Version
Case "14.0", "12.0", "15.0"
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source='" & ThisWorkbook.FullName & _
"';Extended Properties='Excel 12.0;HDR=yes;imex=1';"
Case Else
strConn = "Provider= Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.FullName & ";Extended Properties='Excel 8.0;HDR=YES;imex=1';"
End Select
'生成连接字符串
On Error GoTo ErrorHandler
With AdoConn
.CommandTimeout = 5
.ConnectionTimeout = 5
.CursorLocation = adUseClient
.Mode = adModeRead
.ConnectionString = strConn
.Open
End With
Set AdoRst = AdoConn.Execute(strSQL)
ActiveSheet.UsedRange.ClearContents
Range("a1").CopyFromRecordset AdoRst
AdoRst.movefirst
'移动游标到第一条记录
MsgBox Cells(Rows.Count, 1).End(xlUp).Offset(2).CopyFromRecordset(AdoRst, 5)
'只输出5条记录
AdoRst.movefirst
MsgBox Cells(Rows.Count, 1).End(xlUp).Offset(2).CopyFromRecordset(AdoRst, , 1)
'只输出第1列字符
Set AdoRst = Nothing
Set AdoConn = Nothing
Exit Sub
ErrorHandler:
MsgBox Err.Number & vbCrLf & Err.Description
Set AdoRst = Nothing
Set AdoConn = Nothing
End Sub
SHEET3数据截图: 效果图:
CopyPicture 方法 将所选对象作为图片复制到剪贴板。Variant。 语法:CopyPicture(Appearance, Format) Appearance 可选XlPictureAppearance 指定图片的复制方式。 xlPrinter 2 图片按其打印效果进行复制。 xlScreen 1 图片尽可能按其屏幕显示进行复制。 Format 可选XlCopyPictureFormat 图片的格式。 xlBitmap 2 位图(.bmp、.jpg、.gif)。 xlPicture -4147 绘制图片(.png、.wmf、.mix)。 示例: Range("a1").CurrentRegion.CopyPicture xlScreen, xlPicture ActiveSheet.Paste
CreateNames 方法 在指定区域中依据工作表中的文本标签创建名称。 语法:CreateNames(Top, Left, Bottom, Right) Top 可选,如果该值为 True,则使用顶部行中的标签创建名称。默认值为 False。 Left 可选,如果该值为 True,则使用左侧列中的标签创建名称。默认值为 False。 Bottom 可选,如果该值为 True,则使用底部行中的标签创建名称。默认值为 False。 Right 可选,如果该值为 True,则使用右侧列中的标签创建名称。默认值为 False。 该方法对应于Excel 中提供的“根据所选内容创建”
当创建的名称已经存在的时候,会提示是否覆盖。 示例: Range("b19").CurrentRegion.CreateNamesLeft:=True 参数的组合,大家可以试试,结果还是很有趣的。 数据截图:
效果截图:
Cut 方法 将对象剪切到剪贴板,或者将其粘贴到指定的目的地。 语法:Cut(Destination) Destination 可选,应在其中粘贴对象的目标区域。 如果省略此参数,区域对象会被剪切到剪贴板。 返回值:Variant,经测试后,返回值为Boolean类型。 说明:剪切的区域必须由相邻的单元格组成。 示例: Range("b19").CurrentRegion.CutCells(Rows.Count, "b").End(xlUp).Offset(2) 执行前数据截图:
执行后数据截图:
|