Excel精英培训网

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

[技巧] VBA与Excel入门系列-06-常用函数中篇

[复制链接]
发表于 2017-10-23 21:34 | 显示全部楼层 |阅读模式
系统环境:Windows 10
Excel:2010版本
@Excel结合VBA高效工作




今天讲讲常用的单元格定位函数


  • 日常工作中,工作表存放数据的最大行列可能不固定
  • 或者无法知道需要操作的单元格的绝对位置,但是知道其相对位置
  • 当然可以使用循环去寻找,但效率偏低



循环与以下三个函数结合效果更好
函数名称
offset
resize
end

函数功能
平移
表格数组选取
定位最后一个


其实
只是想
用一下
Markdown表格

offset(行相对位置, 列相对位置)
  • 同行为0,向下为正,向上为负
  • 同列为0,向左为负,向右为正

代码如下


Sub test()
    Rem>>定义工作表
    Set sht = ThisWorkbook.Worksheets("举例")
    sht.Cells(1, 1) = "起点位置"
    sht.Cells(1, 1).Offset(1, 2) = "相对位置"
End Sub


resize(行数, 列数)
  • 构成一个数组或者一个单元格区域
  • 适用于特定区域整体复制
  • 被复制区域与复制区域大小应一致
  • 被复制区域resize后需增加.Value

代码如下:


Sub test()
    Rem>>定义工作表
    Set sht = ThisWorkbook.Worksheets("举例")
    sht.Range("B7").Resize(1, 3) = sht.Range("B5").Resize(1, 3).Value
End Sub





end(特定参数)
  • 特定参数为:xlUpxlToLeftxlDownxlToRight
  • xlUp:从下往上,第一个有数据的单元格
  • xlToLeft:从右往左,第一个有数据的单元格
  • 上下无To,左右有To

代码如下:


Sub test()
    Rem>>定义工作表
    Set sht = ThisWorkbook.Worksheets("举例")


    MaxHang = sht.Cells(Rows.Count, "A").End(xlUp).Row
    MaxLie = sht.Cells(5, Columns.Count).End(xlToLeft).Column
    Debug.Print ("MaxHang=" & MaxHang)
    Debug.Print ("MaxLie=" & MaxLie)
End Sub


以上为本次的学习内容,下回见
*本文为原创作品,如若转载请标明出处,如发现有错误,欢迎指正


如想了解更多,欢迎关注公众号:Excel结合VBA高效工作(原 VB与Office)



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

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

本版积分规则

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

GMT+8, 2024-4-25 00:36 , Processed in 0.311023 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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