VBA_操作表

Sub biao01()
‘结合sheets属性在特定表插入表并且命名
Sheet1.Name = "01biao" ‘重新给表定义属性
Range("A1") = Sheet1.Name  
Sheets(1).Range("B1") = 1
Sheets.Add after:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = "02biao"
Dim i As Integer
For i = 3 To 6
Sheets.Add after:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = i & "biao"
Next
End Sub


'选中单元格
Sub danyuange()
    '变量声明
    Dim i As Integer
    '循环
    For i = 1 To 20
    '单元格函数,单元格赋值
    Range("A" & i) = i + 1
    Next
End Sub

'选中表
Sub biao()
Sheets(2).Select '选中表
    '变量声明
    Dim i As Integer
    '循环
    For i = 1 To 20
    '单元格函数,单元格赋值
    Range("A" & i) = i
    Next
End Sub
'插入表
Sub charubiao()
    'Sheets.Add before:=Sheets(1)    '在表1之前插入表
    'Sheets.Add After:=Sheets("单")  '在表1之后插入表
     Dim i As Integer                    '变量声明
     For i = 1 To 10                     '循环
     Sheets(3).Range("A" & i) = i        '特定表的单元格赋值
    Next
    Sheets(1).Range("B1") = Sheets.Count 'sheets.count统计表的数量
    Sheets.Add after:=Sheets(Sheets.Count) '在最后一张表插入表
End Sub

’删除表
Sub shanchubiao()
Excel.Application.DisplayAlerts = False ‘取消警告
Dim i As Integer
For i = 1 To 4
Sheets(1).Delete
Next
Excel.Application.DisplayAlerts = True ’还原警告
End Sub

‘生成日报表
Sub ribaobiao()
Dim i As Integer
For i = 1 To 31
Sheet1.Copy after:=Sheets(Sheets.Count)’复制插入报表
Sheets(Sheets.Count).Name = "5月 " & i & “日”’表命名
Sheets(Sheets.Count).Range("E5") = "2020-5-" & I’单元格输值
Next
End Sub

‘多表汇总
Sub huizongbiao()
Dim i As Integer
For i = 2 To Sheets.Count
Sheet1.Range("B" & i + 8) = Sheets(i).Range("E5")
Sheet1.Range("C" & i + 8) = Sheets(i).Range("E6")
Sheet1.Range("D" & i + 8) = Sheets(i).Range("E44")
Next
End Sub

‘根据条件删除某些表
Sub shanchubiao()
Dim sht As Worksheet  ‘定义一个为表的变量类型
Excel.Application.DisplayAlerts = fals ‘关掉警告
For Each sht In Sheets  ‘在表的集合中遍历表
If sht.Name <> "绝不能删" Then  ‘根据表名进行判断是否删除
sht.Delete
End If
Next
Excel.Application.DisplayAlerts = ture    ‘打开警告
End Sub
‘删除空白单元格
Sub shandanyuange()
Dim i As Integer ‘定义变量
For i = 10 To 1 Step -1 ‘从10开始遍历,每遍历一次 -1
If Range("A" & i) = "" Then ‘判断是否为空
Range("A" & i).Select        ‘如果为空选中单元格
Range("A" & i).Delete        ‘删除单元格
End If
Next
End Sub

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL+数据透视+VBA 使数据透视走向更灵活,更智能,更适用。 这个是我和师傅一撇首度合作,他提供了文件并提出了要求,我帮他实现其效果 下面从几个方面解释一下: 1、功能 一个源文件和一个通过用SQL查询生成的数据透视 将源文件拖到电脑的任意位置,甚至将文件名也改掉,用VBA配上代码和窗体找到文件,数据透视仍然能够正常工作 2、套用 现在来讲讲怎么使做出来的东东适应大家的需要 2、1 用OLE DB窗口引用工作或写SQL语句,因为用这个方法同VBA相通,copy下来代码区的的语句 2、2 打开透视文件,将透视中的字段全部拖出来,也就是变成一个空数据透视。 右击下面工作图标 或者 工具》宏》visual basic 编辑器,点击模块看到代码区 2、3 将2、1步骤copy的语句commandtext的数据Array中的引号中 .CommandText = Array(" ") 可能不同版本会有一些差别,同时SQL语句中如果添加了文本生成新字段,双引号要成对翻倍 如:"出库" AS 单选项 要改成 ""出库"" AS 单选项 2、4 语句太长的处理:在代码区如果你想好看一些,你可以插入“ _”来换行,当然不能插在一个单词或自动名等中间。 2、5 将文件存盘,重新打开就会有了数据,你可以将字段拖入数据透视中,创建你自己的数据透视, 2、6 这样文件就可以使用,相信VBA的引导不用教就可以交给别人使用了 下面附上代码,包含3个区: 1、 工作簿去,打开文件时工作 Private Sub Workbook_Open() Dim OP If Dir(Sheets("path").Range("A1")) = "" Then OP = MsgBox("源文件已被移走,请选择下列选项" + Chr(10) + "1、选择是,重新输入文件全名" + Chr(10) + "2、选择否,打开原有的数据透视" + Chr(10) + "3、选择取消,关闭文件", vbYesNoCancel, "Scarlett温馨提示") If OP = vbYes Then UserForm1.Show End If If OP = vbNo Then ActiveWorkbook.Close True End If If OP = vbCancel Then Exit Sub End If Else Call refreshpv End If End Sub 2、窗体区,实现文件的查找 Private Sub CommandButton1_Click() Dim fopen As FileDialog Set fopen = Application.FileDialog(msoFileDialogFilePicker) fopen.Show TextBox1.Value = fopen.SelectedItems(1) Set fopen = Nothing End Sub Private Sub CommandButton2_Click() If InStr(TextBox1.Value, ".") > 0 Then Sheets("path").Range("A1") = TextBox1.Value Call refreshpv unload me Else MsgBox "文件名要带路径含后缀的文件名", "Scarlett_88温馨提示" TextBox1.SetFocus End If End Sub Private Sub CommandButton3_Click() Unload Me End Sub Private Sub TextBox1_Change() End Sub Private Sub UserForm_Activate() End Sub Private Sub UserForm_Click() TextBox1.Value = Sheets("path").Range("A1") End Sub 3、模块区,实现SQL语句的地址更新和刷新数据透视的数据源 Sub refreshpv() With ActiveSheet.PivotTables("数据透视1").PivotCache .Connection = Array( _ "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Sourc

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值