office vba编程

一、如何进入编程界面

(进入路径: sheet名称 --> 鼠标右键菜单 --> 查看代码)

二、如何插入控件

三、如何访问excel元素

For i = 6 To 10 '第二行开始循环 循环j次
  data = Trim(Worksheets(2).Range("F" & i).Value) '获取F列i行数据 
  Worksheets(1).Range("F" & i).Value = data

Next
四、如何遍历

1.Sub 遍历工作表()
For Each sh In Worksheets    '数组
    sh.Select
    Call 设置A1格式
Next
End Sub

For Each sh In Worksheets
        If sh.Index > 2 Then    '限定工作表范围
       sh.Select
              Call 设置A1格式
        End If
    Next

For Each sh In Worksheets    '数组
    If sh.Name Like "*" & "表" & "*" Then     '如果工作表名称包含“表”
        sh.Select
        Call 设置A1格式
    End If
Next
End Sub

遍历range

Sub forEach()

Dim rg As Range

For Each rg In Sheet1.Range("b2:b10")

If rg = "女" Then rg.Interior.ColorIndex = 3

Next

End Sub

五常用代码

1把一个workBook的一块表格拷贝到另一个WorkBook中的一般化方法

Workbooks("工作簿1.xls").Sheet1.Range("A1:C50").Copy ThisWorkbook.Sheet2.Range("A1")

2找到粘贴位置:
 b=sheet2.[BI].end(xlToLeft).row+1 获取最后一次编辑的各自的列号!
.Range("B65536").End(xlUp).Row + 2 最后一次编辑的格子的行号

3单元格发生改变触发事件

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
    [a2] = [a2] + 1
End If
End Sub

4、使用系统函数

想在B列的2到1000行搜索为“结束”两个字的单元格有多少个,用countif怎么实现?

Set myRange = Range("B2:B1000")
A=Application.WorksheetFunction.COUNTIF(myRange,"结束")

Excel VBA - Range对象

Rows.Count    显示所有行的数目

Columns.Count    显示所有列的数目

Cells(Rows.Count, 1).End(xlUp).Row    显示第一列从下面数第一个有值的单元格的行号

Cells(1, Columns.Count).End(xlToLeft).Column    显示第一行从右面数第一个有值的单元格的列号

Cells(1, 1).BorderAround xlContinuous, xlThin    给A1单元格加入外边框

Range("A1:B4").Borders.LineStyle. = xlContinuous    给这个区域加入边框

Rows(1).AutoFit    为第一行分配合适的行距

Columns(1).AutoFit    为第一列分配合适的列宽

Rows(1).Delete    删除第一行

Columns(1).Delete    删除第一列
Cells(1, 1).MergeArea.Count    计算合并单元格的总单元格数

Cells(1, 1).MergeArea.Rows.Count    计算合并单元格的行数

Cells(1, 1).MergeArea.Columns.Count    计算合并单元格的列数

Cells(1, 1).MergeCells    返回Boolean,True和False Rnd()函数    返回小于1,大于等于0的一个随机数

Cells(1, 1).Interior.ColorIndex = Int(56 * Rnd() + 1)    给单元格内部赋个随机的颜色

Cells(1, 1).EntireColumn    包含此单元格的列

Cells(1, 1).EntireRow    包含此单元格的行

Cells.Interior.ColorIndex = xlColorIndexNone    所有单元格五色

Set rng = Application.Union(Target.EntireRow, Target.EntireColumn)    设置合并区域,注意Union方法是在Application下面的

Set rng = Sheet1.UsedRange.SpecialCells(xlCellTypeFormulas)    找出具有公式的单元格区域

Sheet1.Range("A:A").ClearContents    清除第一列的所有内容

Sheet1.Range("A:A").Clear    清楚第一列的所有东西,包括值、格式等

For Each rng In Sheet2.Range("A1:A40")    遍历区域内的每个单元格
Range("A:A").Replace "区", "市"    替换

Range("A:A").Replace What:="区", Replacement:="市"    替换
Sheet1.Range("A1:G7").Copy Sheet2.Range("A1")    复制区域,高宽变化

Sheet1.Range("A1:G7").Copy    复制区域

Sheet3.Range("A1").PasteSpecial xlPasteColumnWidth    黏贴相同宽度,相同高度要自己设置

Range("B1:B20").Validation.Add Type:=xlValidateList, Formula1:="A,B,C,D,E,F,G"    数据有效性

Range("A1").TextToColumns Space:=True    通过不定数量的空格来分列字符串

Cells(3, 4).Top    单元格顶部距离顶部的距离 Cells(3, 4).Left    单元格左边距离左边的距离 Cells(3)    表示第一行的第三列的单元格

ActiveWindow.VisibleRange.Cells(3)    表示当前页面第一行的第三列的单元格

Cells(1, 1).Previous.Select    向前移一个位置 Cells(1, 1).Next.Select    向后移动一个位置

 公式计算 

Range("C2").Formula = "= A2*B2"    简单相乘

Range("C2").Copy Range("C3:C" & r)    复制单元格公式

Cells(r + 1, 3).Formula = "=SUM(C2:C" & r & ")"    相加公式,也可以用Range

Range("C2").FormulaR1C1 = "=RC[-2]*RC[-1]"    按照相对位置来算

Range("C" & r + 1).FormulaR1C1 = "=SUM(R[-" & r - 1 & "]C:R[-1]C)"    同上,按相对位置来算,注意,向上是“-”

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值