Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3522|回复: 6

[分享] 【烟花原创】VBA零基础之第70篇 单元格对象Range(十四)

[复制链接]
发表于 2014-1-4 21:20 | 显示全部楼层 |阅读模式
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数据截图:
          70-1.jpg                      
  效果图:
    70-2.jpg

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中提供的“根据所选内容创建”
   70-3.jpg
  当创建的名称已经存在的时候,会提示是否覆盖。
  示例:
    Range("b19").CurrentRegion.CreateNamesLeft:=True
  参数的组合,大家可以试试,结果还是很有趣的。
  数据截图:
    70-4.jpg

  效果截图:
    70-5.jpg

Cut 方法
 将对象剪切到剪贴板,或者将其粘贴到指定的目的地。
 语法:Cut(Destination)
  Destination 可选,应在其中粘贴对象的目标区域。
  如果省略此参数,区域对象会被剪切到剪贴板。
 返回值:Variant,经测试后,返回值为Boolean类型。
 说明:剪切的区域必须由相邻的单元格组成。
 示例:
  Range("b19").CurrentRegion.CutCells(Rows.Count, "b").End(xlUp).Offset(2)
  执行前数据截图:
    70-6.jpg
  执行后数据截图:
    70-7.jpg
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-3-26 14:07 | 显示全部楼层
回复

使用道具 举报

发表于 2014-4-24 10:57 | 显示全部楼层
回复

使用道具 举报

发表于 2014-6-11 16:05 | 显示全部楼层
dddddd
回复

使用道具 举报

发表于 2014-6-18 12:38 | 显示全部楼层
回复

使用道具 举报

发表于 2014-6-19 09:49 | 显示全部楼层
{:1112:}
回复

使用道具 举报

发表于 2014-6-26 22:30 | 显示全部楼层
准备休息喽
谢谢分享,标记,七十
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-2 16:04 , Processed in 0.247268 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表