Excel VBA随笔二

在VBA中窗口可以看到sheet1是哪张表,之后增加表,或者修改表的名字,移动表的位置等,该对应的表
都不会改变,可以防止以后表定位不准的问题

定义:dim i as Integer
循环:for i=10 to 1 step -2 ... next
for i=1 to sheets.count 这个循环数,不随着sheets.count的改变而改变
条件:if "..."="" then ... elseif ... else ... end if
条件结束循环:if "..."="" then exit for

删除表:
通过单元格删除:rng.EntireRow.Delete
注意从下往上删除,因为删除上面的单元格,或行,下一单元格或行将会向上移动,导致没有删除到
屏幕更新:
application.ScreenUpdating = False
弹出警告框:
application.DisplayAlerts = False
sheet1.delete
application.DisplayAlerts = True
application.ScreenUpdating = True
添加,复制等确定添加的位置:add , copy after := Sheets(Sheets.Count)
for 循环升级 for each
dim rng as Range
for each rng in range("a1:a10")
rng = 1(此时的rng等于a1,a2,...,a10)
next
 
循环所有表
dim biao as worksheet
for each biao in sheets
next

打开工作表
workbooks.open filename:="d:\data\1.xlsx"
当前打开的工作表activeworkbook.sheets(1).range("a1") = "heheda"
保存:activeworkbook.save
关闭:activeworkbook.close
新建工作表:Workbooks.Add
另存为:activeworkbook.saveas filename:="d:\data\2.xlsx"

复制表到一张新的工作簿:sheet1.Copy

先点表,然后再点单元格
sheets(j).select
sheets(j).range("d22").select
当前选中的对象:selection.EntireRow.delete

操作单元格数据
[a10]
cells(2,3)第二行,第三列
range("a1:a10").select选中a1至a10
属性用来赋值,默认是value:range("a1").value = 10
sheets(range("d1").value).select
range("a1").offset(10,1).select 下移10行,右移1列
选中单元格,双击上边框,回到上边界
range("a10").end(xlup)
Range("a65536").End(xlUp).Row返回最后一行的行号

选择区域
range("a10").resize(1,4).select :选择一行四列
range("a10").entireRow.select:选择这一整行

range("h7:i7").copy range("n7"):会带有单元格格式一起复制,比如框线
entireRow整行复制,必须从a列开始放

合并单元格,可以配合resize使用
Range("a1:a2").Merge


delete:删除单元格
clearContents:清空内容

运行过程:call qk(调用函数)
autoFilter(自动筛选)

筛选:
Sheet1.Range("A1:F1048").AutoFilter Field:=4, Criteria1:="一车间"
筛选之后粘贴(筛选之后可以全选粘贴,即可以得到筛选出来的数据)
sheet1.range("A1:F1048").copy sheets(i).range("a1")
返回没有筛选的状态
Sheet1.Range("A1:F1048").AutoFilter

在最后一张表后新建一张表
sheets.add after:=sheets(sheets.count)
sheets(sheets.count).name = "123"
或者可以合并:sheets.add (after:=sheets(sheets.count)).name = "345"

建表之前,需要判断表名不重复
for each sht in sheets
    if sht.name=sheet1.range("a1") then
        k = 1
        exit for
    end if
next

拷贝数据
录制筛选的代码,复制:
sheet1.range("a1:f"&irow).copy sheets(j).range("a1")
sheet1.range("a1:f"&irow).authfilter

msgbox,inputbox
弹出对话框MsgBox "哒哒"
输入框:i = InputBox("你多大?")
MsgBox "原来你" & i & "岁了"

有两个变量,不使用range,使用cells(行,列)

with语句,可以省写:
with sheet2
    .range("a1")=6
    .range("a3")=16
    sheet3.range("a1") = 6
    .range("a4")=60
    .range("a6")=6
end with

cells表示整表

事件,双击工作表,选择worksheet,选择selectchange改变选择的单元格
关闭事件:application.enableevents = False

当点击或激活统计数据表的时候,自动刷新,事件:activate
激活表刷新:activeWorkbook.RefreshAll

工作簿事件,双击工作簿
带代码的文档,xlsm后缀

重要数据的自动备份,定期备份,当文件被点了保存
=now()会得到当前的日期加时间,自定义数字
=text(now(),"yyyymmddhhmmss")


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值