`

vba 学习(一)

 
阅读更多

在线学习

http://excel.walk-nie.com/vba-sample/vba-sample-ctrl/803

 

基础学习看附件 vba学习文档.rar

 

一、用VBA为选定的单元格加上边框

Cells(1, 3).Select   //当前选中的第一行第三列的单元格为例。
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)//为左边上边框。
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)//为上边上边框。
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)//为下边上边框。
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)//为右边边上边框。
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With

 

加边框之前最好用宏录制一下整个操作过程就了解流程了。

 

1.     虽然用录制代码的方法可以很方便的获得设置单元格边框的代码,但可以看出,得出的代码非常复杂,实际上就是对每一步操作进行录制得来的。

2.     利用Range 对象的Borders 属性及BorderAround 方法分别可以设置单元格区域的内部线框及外部边框。

3.     Borders 属性的属性值及BorderAround 方法的参数值可以复制刚才录制的代码而得。

下面是利用Range和borders的示例演示

Dim rng As Range

  Set rng = Range("A1:B6")

  With rng.Borders

    .LineStyle = xlContinuous//边框设置

    .ColorIndex = xlAutomatic//颜色设置

    .TintAndShade = 0

    .Weight = xlHairline//是否粗细

  End With

  rng.BorderAround xlContinuous, xlMedium, xlColorIndexAutomatic

 

2:vba设置Excel单元格左对齐、右对齐、居中对齐、字体等

 

左对齐、右对齐、居中对齐

  '选择区域或单元格右对齐  
  Selection.HorizontalAlignment = Excel.xlRight

  '选择区域或单元格左对齐
  Selection.HorizontalAlignment = Excel.xlLeft

  '选择区域或单元格居中对齐  
  Selection.HorizontalAlignment = Excel.xlCenter

  固定区域的对齐方式的代码:

  Range("A1:D9"). HorizontalAlignment = Excel.xlLeft

字体、字号、字型

  '当前单元格字体为粗体
  Selection.Font.Bold = True

  '当前单元格字体为斜体
  Selection.Font.Italic = True

  '当前单元格字体为宋体20号字

  With Selection.Font
   .Name = "雅黑体"
   .Size = 20
  End With

 

 

VBA控制Excel的边框线,打印区域需要用到的函数有Borders.LineStyle

Sheet.Range(from,to).Borders[].LineStyle=1

Sheet.Range(cells(x1,y1),cells(x2,y2).Borders.LineStyle

Borders[]里面也可以有参数 ,如edgetop(顶部),edgebottom(底部)之类的

LineStyle的属性 有xlLineStyleNone(clear Line),1(单行线),5(虚线),xlDouble(双线),xlDouble取value值也是可以的

打印区域设置: ActiveSheet.PageSetup.PrintArea = Range(Cells(1, 1), Cells(ShtRow_End, SubjCnt + 2 )).Address

 

 

二、vba字符串函数

Trim(string)            去掉string左右两端空白

Ltrim(string)           去掉string左端空白


Rtrim(string)           去掉string右端空白


Len(string)             计算string长度


Left(string, x)         取string左段x个字符组成的字符串


Right(string, x)        取string右段x个字符组成的字符串


Mid(string, start,x)    取string从start位开始的x个字符组成的字符串


Ucase(string)           转换为大写


Lcase(string)           转换为小写


Space(x)                返回x个空白的字符串


Asc(string)             返回一个 integer,代表字符串中首字母的字符代码


Chr(charcode)           返回 string,其中包含有与指定的字符代码相关的字符

 

InStr()    例如:

Dim a As String
a = "中华人民共和国"
If InStr(a, "国") > 0 Then
   MsgBox ("a有")
Else
    MsgBox ("a无")
End If

   

VBA中如何表示一个字符串包含另一个字符串

    instr 函数 instr(a,b),返回值为0或者其他数值。0代表a 中,不包含b .数值代表 b 在a中出现的位置。如:instr("12","2")=2

 

    InStr(S1,S2)>0说明S1中包含S2
    InStr(S1,S2)=0说明S1中不包含S2

 

 

 

三、VBA 取到范围内所有值,并去重复

 

Sub test()
    Dim ar
    Dim d As Object
    Dim i As Integer
    Set d = CreateObject("scripting.dictionary")        '创建 字典 对象
    ar = Range("a2:a" & Range("a65536").End(xlUp).Row)  '将 数据写入 数组 Ar
    For i = 1 To UBound(ar)     '循环 数组
        If ar(i, 1) <> "" Then  '如果 不是 空
            d(ar(i, 1)) = ""    '添加到字典中,"字典自身具有相同的内容不重复添加功能"
        End If
    Next
    Range("e2:e65536").ClearContents  '清除 E2:E5536 区域中的内容
    Range("e2").Resize(d.Count) = Application.Transpose(d.keys)
    '以 E2 为基点,扩展 D.count 行的数据 为 字典 转置 后的内容
End Sub

 

LBound(数组) 可以得到数组的最小“学号”(下标)

UBound(数组)可以得到数组中的最大“学号”(上标)

Sub aa()
   Dim arr
   arr = Range("a1:a10")
   MsgBox LBound(arr)
   MsgBox UBound(arr)
End Sub

 

 

上面是针对一维数组,如果是二维数组呢?

LBound(数组,2) 可以得到数组中第二维最小“学号”(下标)

UBound(数组,2)可以得到数组中第二维的最大“学号”(上标)

Sub aa()
   Dim arr
   arr = Range("a1:d10")
   MsgBox LBound(arr,2)
   MsgBox UBound(arr,2)
End Sub

 

 

四、VBA String 转Integer ⇒ val()

 

VAL是返回包含于字符串内的数字,字符串中是一个适当类型的数值。
在它不能识别为数字的第一个字符上,停止读入字符串。那些被认为是数值的一部分的符号和字符,例如美圆号与逗号,都不能被识别。但是函数可以识别进位制符号 &O(八进制)和 &H(十六进制)。空白、制表符和换行符都从参数中被去掉。
Val("2457")    返回 2457
Val(" 2 45 7")    返回 2457
Val("24 and 57")    返回 24
 
InStr 函数来查找某字符串在另一个字符串中首次出现的位置。

 

 

 

五、VBA 获取远程 excel 的 sheet

 

public sub remoteFile()
dim a as string, b as worksheet
       a ="\\100.100.100.100\e:\file\data.xls" 
    Workbooks.Open Filename:= a   '打开工作簿
       Set b = Workbooks("data.xls").Worksheets("lab")       '打开工作簿下的工作表
end sub

 

 

 

 

六、VBA 单精度浮点数 (Single), 双精度浮点数 (Double), 财务上使用的:Currency 类型

通常单精度浮点数 (Single) 在计算机中是用 4个字节来表示的,范围为:负数 -3.402823 * 10^38 ~ -1.401298 * 10^(-45),正数 1.401298 * 10 (-45) ~ 3.402823 * 10 ^38

而双精度浮点数 (Double) 在计算机中是用 8个字节来表示的,范围为:负数  -1.79769313486232 * 10^308 ~ -4.94065645841274 *10^ (-324),正数4.94065645841274 *10^ (-324) ~ 1.79769313486232 * 10^308

在 VBA 中还有一种数据类型是专为财务上使用的:Currency 类型。它在计算机中也是用 8个字节来存储的,范围为:-922,337,203,685,477.5808 到 922,337,203,685,477.5807。

 

 

 

七、循环 for each   next 循环的用法

 

Sub test7()
'激活工作表
Worksheets("Sheet1").Activate
Dim i As Integer
i = 1
For Each C In Range("A22:I30")
    C.Value = i
    i = i + 1
Next C
End Sub

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    vba学习 一个老鸟的吐血总结(转载)

    "VBA学习指南" 本教程旨在为CAD二次开发提供VBA教程,教程详细介绍了VBA的基础知识和实践应用,为CAD开发者提供了有价值的参考。 什么是Autocad VBA? Autocad VBA(Visual Basic for Applications)是一种功能...

    Excel VBA学习笔记

    这篇“Excel VBA学习笔记”涵盖了多个关键知识点,下面将对这些内容进行详细讲解。 一、VBA基础 1. **环境介绍**:VBA开发环境包括VBE(Visual Basic Editor)编辑器,它提供了代码编辑器、项目浏览器、对象浏览器...

    Excel VBA学习资料

    Excel VBA(Visual Basic for Applications)是Microsoft Excel中的一个强大工具,它允许用户通过编写代码来自定义工作簿、工作表和图表的功能。VBA的学习可以帮助你实现自动化任务,提高工作效率,进行复杂的数据...

    VBA学习资料大合集

    这个“VBA学习资料大合集”显然是一个包含多个文件的压缩包,旨在帮助用户深入理解和掌握VBA的基础及高级技巧。 在Excel VBA的学习中,你需要了解以下关键知识点: 1. **基本概念**:理解VBA是什么,它的作用和...

    excel_vba 学习资料

    总之,"Excel VBA 学习资料"提供了一个全面的学习路径,从基础到高级,从理论到实践,帮助你掌握Excel VBA的方方面面。通过系统地学习这套资料,你不仅能够编写出高效的宏,还能成为Excel自动化处理的专家,解决各种...

    VBA学习文档

    VBA(Visual Basic for Applications)是Microsoft Office套件中内置的一种编程语言,它允许用户自定义功能、自动化任务,以提高工作效率。本压缩包包含的资源是关于VBA的学习文档,主要聚焦在Excel和Word两个应用...

    VBA学习基础适合初学者学习

    VBA(Visual Basic for Applications)是Microsoft Office...记住,实践是检验真理的唯一标准,多动手、多思考,VBA学习之旅将会越来越顺畅。在VBA学习基础的教程中,通常会涵盖这些知识点,逐步引导你进入编程的世界。

    学VBA的最佳学习资料

    ### VBA学习精要 #### 1. 什么是VBA?为什么学习VBA? VBA,全称为Visual Basic for Applications,是一种嵌入式编程语言,主要用于Microsoft Office等应用程序的自动化和扩展功能。它允许用户创建自定义解决方案...

    VBA学习资料.zip

    本压缩包“VBA学习资料.zip”正是针对初学者的一份宝贵资源,包含了一系列文档,旨在帮助学习者掌握VBA的基础知识及其在Office中的应用。 首先,"word排版技巧整理.doc"可能是关于如何利用VBA进行Word文档格式化的...

    VBA学习教程

    VBA,全称为Visual Basic for Applications,是在Microsoft Office系列应用中内置的一种编程语言。用户可以通过VBA进行宏编程,实现对Office应用程序的自定义和自动化操作。VBA基于VBScript,但提供了更强大的功能和...

    vba学习教程

    了解对象模型也是VBA学习的关键。Office应用程序如Excel、Word都有自己的对象模型,其中包含各种对象,如Workbook、Worksheet、Range等。通过这些对象,你可以访问和操作应用程序的各个部分。例如,使用Range对象,...

    VBA学习基础.pdf

    ### VBA学习基础知识点 #### 一、VBA概述 **1.1 VBA是什么** - **定义**:VBA(Visual Basic for Applications)是一种基于Visual Basic编程语言的子集,用于实现Microsoft Office等应用程序的自动化操作。它使得...

    VBA学习资料

    ### VBA学习资料知识点概述 #### 一、VBA简介 - **VBA**(Visual Basic for Applications)是一种由微软开发的事件驱动编程语言,它作为Microsoft Office套件中的一个组成部分,广泛应用于Excel、Word等Office应用...

    VBA学习解释器

    VBA学习解释器是一个专门为初学者和进阶者设计的资源,旨在帮助他们更好地理解和掌握VBA编程。 在Excel中,VBA程序解释器是内置的一部分,它负责执行VBA代码。当你编写了一个VBA宏或者模块后,这个解释器会读取并...

    VBA学习软件

    标题中的“VBA学习软件”指的是旨在帮助用户学习和掌握Visual Basic for Applications(VBA)的应用软件。VBA是一种编程语言,广泛应用于Microsoft Office等应用程序的宏编程和自定义自动化。该软件以免费的形式提供...

    Excel VBA 学习源代码

    Excel VBA(Visual Basic for Applications)是Microsoft Excel内置的一种编程语言,它允许用户自定义工作表函数、自动化任务、...同时,结合官方文档和其他教程资源,理论与实践相结合,会让你的VBA学习之路更加顺畅。

    vba高级开发指南(VBA学习)

    VBA高级开发指南是一份专门针对有经验的VBA学习者的资源,旨在深入探索VBA的各种特性和应用。 一、VBA基础 在VBA中,你需要了解基本的编程概念,如变量、常量、数据类型(如Integer、String、Double等)、运算符和...

    VBA学习资料实例. 以一个财务报告为例子

    本资料包"VBA学习资料实例. 以一个财务报告为例子"提供了一个很好的实践平台,帮助学习者深入理解VBA的应用。 在财务报告的背景下,VBA可以用于创建自动化的数据分析、报表生成以及复杂的逻辑验证。例如,"EXCEL+...

Global site tag (gtag.js) - Google Analytics