q1: excel 没有vba入口

1. 快捷键:Alt + F11

2.调出开发工具

1. 打开文件后,依次点击菜单项【文件】-【选项】;
2、在“Excel”选项界面中点击左侧的【自定义功能区】;
3、在自定义功能区主选项卡下,找到【开发工具】,打上钩,然后确定;

range, cells

表示单元格时:range("A1")表示第一行第一列的单元格,实质上于cells(1,1)效果一样。

表示连续的区域:第一是range("起始单元格","结束单元格"),第二是range("起始单元格:结束单元格")

Range("a1", "b4").Select

Range("a2:b4").Select

表示不连续的区域:range("起始单元格1:结束单元格1,起始单元格2:结束单元格2")

Range("a1:b2,c3:d4").Select

表示行和列:例如,我想选择第一行,则可以这样range("1:1"),如果想表示第一列range("a:a")

Range("1:1").Select

Range("a:a").Select

for each

Dim cell As Range
For Each cell In Sheet2.Range("a1:b3")
MsgBox cell.value
Next cell

comboBox

显示多列内容

rowsource属性:可以从工作表中导入数据 。

Columnheads属性:显示列标题,只在引用工作表数据源时才有效,而且数据源不能包括标题行。

ColumnCount属性:设置组合框可显示的列数。

TextColumn属性:选取多列时显示第N列的内容。

BoundColumn属性:指定返回第N列的值,作为窗体的数值。

ListRows属性设置,不含标题行

ColumnWidths属性:设置下拉列表的列宽,可以用三种单位:厘米、磅、英寸。

ShowDropButtonWhen 属性:可以设置是否显示下拉按钮图标。如果写了获得焦点自动打开下拉列表的代码,似乎不设置也行,但有图标会比较清晰。

DropButtonStyle 属性:设置下拉按钮的类型。

VBA sub 与 function 的区别

sub称为过程, function称为函数,他们之间的唯一区别是function有返回值。
完全可以把sub写成function,只要不用function的返回值就可以了。C语言就只有函数而没有过程,因此一般情况下都可以用function来代替sub。
但这两段代码对于excel的运行位置不同。sub会出现在宏里,而function会出现在插入函数中。

函数和过程的调用---无参数时不能带括号!---需要使用返回值时带括号

case

VBA 比较运算符

| S / N | 运算符 | 说明 | 范例 | 输出 |
| 1 | = | 相等:检查两个值是否相等。 它也用作赋值运算符 | 如果 x = z | 如果它们相等则返回 true,否则返回 false |
| 2 | < | 小于:此运算符用于减去数字 | 如果 x < z 则 | 如果 x 小于 z,则返回 true,否则返回 false |
| 3 | > | 大于:此运算符用于将数字相乘 | 如果 x > z 则 | 如果 x 大于 z,则返回 true,否则返回 false |
| 4 | < > | 不等于:此运算符用于除数 | 如果 x < > z | 如果它们不相等,则返回 true,否则返回 false |
| 5 | < = | 小于或等于: | 如果 x < = z | 如果 x 小于或等于 z,则返回 true,否则返回 false |
| 6 | > = | 大于或等于: | 如果 x > =则 | Returns true if x is greater than z, else it returns false |

array

数组清零:erase

InStr

InStr()函数返回一个字符串第一次出现在一个字符串,从左到右搜索。返回搜索到的字符索引位置。

语法

InStr([start,]string1,string2[,compare])
参数说明
  • Start - 一个可选参数。指定搜索的起始位置。搜索从第一个位置开始,从左到右。
  • String1 - 必需的参数。要搜索的字符串。
  • String2 - 必需的参数。要在String1中搜索的字符串。
  • Compare - 一个可选参数。指定要使用的字符串比较。它可以采取以下提到的值:
    • 0 = vbBinaryCompare - 执行二进制比较(默认)
    • 1 = vbTextCompare - 执行文本比较

示例

参考以下代码 -

Private Sub Constant_demo_Click()
Dim Var As Variant
Var = "Microsoft VBScript"
MsgBox ("Line 1 : " & InStr(1, Var, "s"))
MsgBox ("Line 2 : " & InStr(7, Var, "s"))
MsgBox ("Line 3 : " & InStr(1, Var, "f", 1))
MsgBox ("Line 4 : " & InStr(1, Var, "t", 0))
MsgBox ("Line 5 : " & InStr(1, Var, "i"))
MsgBox ("Line 6 : " & InStr(7, Var, "i"))
MsgBox ("Line 7 : " & InStr(Var, "VB"))
End Sub

当你执行上面的函数时,它会产生下面的输出。

Line 1 : 6
Line 2 : 0
Line 3 : 8
Line 4 : 9
Line 5 : 2
Line 6 : 16
Line 7 : 11
 
 

byVal 和 byRef 区别

ByVal是by Value, 也就是值传递

ByRef是by Reference,也就是引用传递

在VBA中默认是ByRef的

byref ,被调用程序 按地址传递,传回主程序的参数,回调时会受影响。

按地址传递(ByRef),是指主程序直接将数据交给子过程(过程中定义传递方式),在过程中修改、调试、返回给主程序,主程序输出的是修改后的值。

VBA默认按地址传递,方便管理?

byval  ,被调用程序 按值传递,传回主程序的参数,回调时会不受改变。

按值传递(Byval),是指将主程序的值(副本一份)给子过程,过程对副本操作,主程序输出的仍是原值。若想输出值传递后的值,可在子过程中设置输出。

Function Test1(ByVal a As Long) As Long
    a = a + 1
    Test1 = a
End Function Function Test2(ByRef a As Long) As Long
    a = a + 1
    Test2 = a
End Function Function Test3(a As Long) As Long
    a = a + 1
    Test3 = a
End Function Sub zz()
    Dim i As Long
    i = 10
    MsgBox (Test1(i))
    MsgBox (i)
    MsgBox (Test2(i))
    MsgBox (i)
    MsgBox (Test3(i))
    MsgBox (i)
End Sub 结果是 11, 10, 11, 11, 12, 12

数据类型与字符

Dim FirstName$

上面的声明和Dim FirstName As String是一样的。

Set 语句

将对象引用分配给变量属性

conf_field(conf_no_构建表, 1) = "构建表"

vba for excel 随笔的更多相关文章

  1. VBA在Excel中的应用(一):改变符合条件单元格的背景颜色

    在使用excel处理数据的时候,为了能更清晰的标示出满足特定条件的单元格,对单元格添加背景色是不错的选择.手工处理的方式简单快捷,但是当遇到大批量数据,就会特别的费时费力,而且不讨好(容易出错).通过 ...

  2. VBA取得EXCEL表格中的行数和列数

    VBA取得EXCEL表格中的行数和列数 初学EXCEL宏的童鞋,总是很想知道表格中含有数据的行数和列数,尤其是行数和列数不确定的情况下.这样可以避免很多的错误,并且可以提高效率.但每次用到的时候到网上 ...

  3. 【VBA研究】用VBA取得EXCEL随意列有效行数

    作者:iamlaosong 用VBA对Excel文件进行处理的时候,keyword段的列号编程时往往是不知道的.须要通过參数设定才干知道,因此.我们编程的时候,就不能用这种语句取有效行数: linen ...

  4. VBA在Excel中的应用(三)

    目录  Chart Export Chart Format Chart Lengend  Chart Protect  Chart Title  Chart Chart Export 1. 将Exce ...

  5. 利用VBA查找excel中一行某列第一次不为空与最后一列不为空的列数

    昨日同事有需求,想知道每个商品第一次销售的月份,以及最后一次销售的月份. 本想通过什么excel函数来解决,但是找了半天也没找到合适的,最后还是通过VBA来解决吧. 使用方法: Excel工具-宏-V ...

  6. 使用VBA实现Excel自杀功能

    曾经看到过一个“Excel-Home”出品的“关于Excel自杀功能”的视频教程,经认真学习后,我写下了自己的代码,分享于此. 实现思路: 使用VBA创建一个隐藏的名称,记录当前工作簿打开的次数,如果 ...

  7. vba实现excel多表合并

    Excel多表合并之vba实现 需求 保留列名,复制每一个excel里的数据,合并到一个excel 操作步骤 将要合并的文件放在同一文件夹下,复制过来就好(ps:最好不要直接操作原数据文件,避免操作失 ...

  8. 使用VBA将Excel指定单元格数据、字符串或者图表对象插入到Word模板指定书签处

    准备工作: 1.首先需要提供一个word模板,并且标记好您要插入书签的位置,定义书签的命名.如图 2.模拟您要插入的Excel原始数据和图表对象 插入代码如下: Private Sub Command ...

  9. 利用vba实现excel表格连接打印编号(一页两个编号),编号支持前缀

    先看一下excel文件, 下图左边部分为文件签审单为要打印的内容, 要求一页需要打印两个文件签审单, NO需要根据打印页面连续编号, 右边部分为打印设置,以及vba部分代码展示, 打印设置可以设置打印 ...

  10. 【VBA】EXCEL通过VBA生成SQL,自动生成创建表结构SQL

    原文:https://blog.csdn.net/zutsoft/article/details/45441343 编程往往与数据库密不可分,一个项目往往有很多的表,很多时候通过excel来维护表结构 ...

随机推荐

  1. DotNet Web应用单文件部署系列

    目录 一.    pubxml文件配置 二.    打包wwwroot文件夹 三.    混淆dll文件 四.    csproj文件配置 五.    批处理 六.    Windows服务安装 七. ...

  2. 了解Microsoft Media Foundation

    关于Microsoft Media Foundation 是什么 Microsoft Media Foundation是用来处理(创建.修改.传输.合成)多媒体数据(音视频)的一个平台. 有什么用 M ...

  3. Latex 公式 如何转为Word 公式,免费线上网站

    在实际中,我们常常需要讲将atex公式在word中书写.不采用手敲word公式,如何直接从Latex公式转word公式: 非常好的网站:https://www.latexlive.com/ 可以直接复 ...

  4. 生成数字csv

    csv文件: import time import mcpi.minecraft as minecraft import mcpi.block as block mc = minecraft.Mine ...

  5. 从 Dict 转到 Dataclass

    从 dataclass 转到 dict 可以用 asdict 函数 , 反向转换的时候 就比较困难. 不用外部的包的情况下, 提供一种思路. def mask(v, d): #v 是 dict 数据, ...

  6. 数据特征采样在 MySQL 同步一致性校验中的实践

    作者:vivo 互联网存储研发团队 - Shang Yongxing 本文介绍了当前DTS应用中,MySQL数据同步使用到的数据一致性校验工具,并对它的实现思路进行分享. 一.背景 在 MySQL 的 ...

  7. LaTeX 编辑协作平台 Overleaf 安装和使用教程

    在学术界和科技行业,LaTeX 已成为撰写高质量文档的标准工具.然而,传统的 LaTeX 使用体验常常伴随着以下挑战: 学习曲线陡峭 环境配置复杂 多人协作困难 实时预览不便 当然,市面上不乏很多在线 ...

  8. ubuntu20 python3 安装 easysnmp

    前言 最近在 ubuntu20 上通过 pip3 安装 easysnmp,安装失败,系统提示:net-snmp/net-snmp-config.h: No such file or directory ...

  9. sora未来在哪里,是否改变世界?

    什么是Sora?(Solo 社区投稿) Sora在日语中是天空的意思,是一种文本到视频的扩散模型,Sora与使用文本提示创建图像的 Dall-E 非常相似,Sora 使用文本提示创建短视频.Sora ...

  10. 基于 Impala 的高性能数仓实践之物化视图服务

    本文将主要介绍 NDH Impala 的物化视图实现. 接上篇,前两篇分别讲了执行引擎和虚拟数仓,它们是让一个 SQL 又快又好地执行的关键.但如果某些 SQL 过于复杂,比如多张大表进行 Join ...