VBA函数

时间函数-------------

变量类型

类型说明如下: 
%——整型 
&——长整型 
!——单精度浮点数 
#——双精度浮点数 
@——货币型 
$——字符串型

在Excel中录入数据时如何自动插入当前时间呢?
比如说,用Excel制作了一份考勤表,员工上班时,门卫在相应的单元格中输入数值1,而想让Excel自动获取当前时间呢?
对于这个问题,可以用VBA来实现了:右击考勤表所在的工作表标签(Sheet1),在随后出现的快捷菜单中,选择“查看代码”选项,打开Visual
Basic窗口,并输入下述代码至右侧的窗口区域中:
Private Sub Worksheet_Change(ByVal
Target As Range) 
  If Target.Column = 3 Or Target.Column =
5 Then
  Target.Offset(0, 1) = Time
  End
If
 End Sub 
  以后您只需在C列(Target.Column =
3)或者E列(Target.Column =
5)单元格中输入字符,系统会在对应的D列或者F列单元格中输入当前时间。(红色部分可按实际需要修改)
注意:在VBA代码中,Date、Now、Time分别表示系统日期、日期及时间、时间。
Now 
       返回一个 Variant
(Date),根据计算机系统设置的日期和时间来指定日期和时间。
Date    
   返回包含系统日期的 Variant (Date)。
Time 
      返回一个指明当前系统时间的 Variant
(Date)。
Timer       返回一个
Single,代表从午夜开始到现在经过的秒数。
TimeSerial(hour, minute, second) 返回一个
Variant (Date),包含具有具体时、分、秒的时间。
DateDiff(interval, date1, date2[,
firstdayofweek[, firstweekofyear]]) 返回 Variant (Long)
的值,表示两个指定日期间的时间间隔数目
Second(time) 返回一个 Variant (Integer),其值为 0 到
59 之间的整数,表示一分钟之中的某个秒
Minute(time) 返回一个 Variant (Integer),其值为 0 到
59 之间的整数,表示一小时中的某分钟
Hour(time)  返回一个 Variant
(Integer),其值为 0 到 23 之间的整数,表示一天之中的某一钟点
Day(date) 
 返回一个 Variant (Integer),其值为 1 到 31
之间的整数,表示一个月中的某一日
Month(date) 返回一个 Variant (Integer),其值为 1 到 12
之间的整数,表示一年中的某月
Year(date) 返回 Variant
(Integer),包含表示年份的整数。
Weekday(date, [firstdayofweek]) 返回一个
Variant (Integer),包含一个整数,代表某个日期是星期几
VBA
时间函数怎么写?
在用户界面放了一个文本框,让用户来输入延时时间间隔值。如用户输入"00:00:05",该值是变量
先定义一个变量
timeuser=excel.cells(8,4)
Application.Wait
(Now() +
TimeValue(timeuser)) 

1,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,其中包含有与指定的字符代码相关的字符
2,VBA转换函数列表:
CBool(expression) 
    转换为Boolean型
CByte(expression) 
   转换为Byte型
CCur(expression)    
 转换为Currency型
CDate(expression) 
 转换为Date型
CDbl(expression)    
 转换为Double型
CDec(expression)    
 转换为Decemal型
CInt(expression)    
 转换为Integer型
CLng(expression)    
 转换为Long型
CSng(expression)    
 转换为Single型
CStr(expression)    
 转换为String型
CVar(expression)    
 转换为Variant型
Val(string)       
  转换为数据型
Str(number)       
   转换为String
3,VBA时间函数:
Now 
     返回一个Variant
(Date),根据计算机系统设置的日期和时间来指定日期和时间。
Date 
   返回包含系统日期的Variant (Date)。
Time 
    返回一个指明当前系统时间的Variant (Date)。
Timer 
   返回一个Single,代表从午夜开始到现在经过的秒数。
TimeSerial(hour,
minute, second)返回一个Variant
(Date),包含具有具体时、分、秒的时间。
DateDiff(interval, date1, date2[,
firstdayofweek[, firstweekofyear]])返回Variant
(Long)的值,表示两个指定日期间的时间间隔数目
Second(time)返回一个Variant
(Integer),其值为0到59之间的整数,表示一分钟之中的某个秒
Minute(time)返回一个Variant
(Integer),其值为0到59之间的整数,表示一小时中的某分钟
Hour(time)返回一个Variant
(Integer),其值为0到23之间的整数,表示一天之中的某一钟点
Day(date)返回一个Variant
(Integer),其值为1到31之间的整数,表示一个月中的某一日
Month(date)返回一个Variant
(Integer),其值为1到12之间的整数,表示一年中的某月
Year(date)返回Variant
(Integer),包含表示年份的整数。
Weekday(date, [firstdayofweek])返回一个Variant
(Integer),包含一个整数,代表某个日期是星期几
4,VBA获取文件列表:
Dir[(pathname[,
attributes])];pathname可选参数,用来指定文件名的字符串表达式,可能包含目录或文件夹、以及驱动器。如果没有找到
pathname,则会返回零长度字符串("");
attributes可选
参数。常数或数值表达式,其总和用来指定文件属性。如果省略,则会返回匹配pathname但不包含属性的文件。
5,VBA删除文件:
Killpathname从磁盘中删除文件,
pathname参数是用来指定一个文件名
RmDirpathname从磁盘中删除删除目录,pathname参数是用来指定一个文件夹

6,用VBA打开文件:
Openpathname
For mode [Access access] [lock] As [#]filenumber
[Len=reclength]能够对文件输入/输出(I/O)。
pathname必要。字符串表达式,指定文件名,该文件名可能还包括目录、文件夹及驱动器。
mode必要。关键字,指定文件方式,有Append、Binary、Input、Output、或Random方式。如果未指定方式,则以
Random访问方式打开文件。
access可选。关键字,说明打开的文件可以进行的操作,有Read、Write、或Read
Write操作。
lock可选。关键字,说明限定于其它进程打开的文件的操作,有Shared、Lock Read、Lock
Write、和Lock Read
Write操作。
filenumber必要。一个有效的文件号,范围在1到511之间。使用FreeFile函数可得到下一个可用的文件号。reclength可
选。小于或等于32,767(字节)的一个数。对于用随机访问方式打开的文件,该
值就是记录长度。对于顺序文件,该值就是缓冲字符数。
说明对文件做任何I/O操作之前都必须先打开文件。Open语句分配一个缓冲区供文件进行I/O之用,并决定缓冲区所使用的访问方式。如果
pathname指定的文件不存在,那么,在用Append、Binary、
Output、或Random方式打开文件时,可以建立这一文件。如果文件已
由其它进程打开,而且不允许指定的访问类型,则Open操作失败,而且会有错误发生。如果mode是Binary方式,则Len子句会被忽略
掉。
重要在Binary、Input和Random方式下可以用不同的文件号打开同一文件,而不必先将该文件关闭。在Append和Output方式
下,如果要用不同的文件号打开同一文件,则必须在打开文件之前先关闭该文

7,VBA读入文件:
Input#filenumber,
varlist从已打开的顺序文件中读出数据并将数据指定给变量
Get[#]filenumber, [recnumber],
varname将一个已打开的磁盘文件读入一个变量之中。
8,写入文件:
Write#filenumber,
[outputlist]将数据写入顺序文件
Print#filenumber,
[outputlist]将格式化显示的数据写入顺序文件中
Put[#]filenumber, [recnumber],
varname将一个变量的数据写入磁盘文件中。
9,VBA关闭文件:
Close[filenumberlist]关闭Open语句所打开的输入/输出(I/O)文件
注意
如果今后想用Input #语句读出文件的数据,就要用Write #语句而不用Print #语句将数据写入文件。因为在使用Write
#时,将数据域分界就可确保每个数据域的完整性,因此可用Input #再将数
据读出来。使用Write
#还能确保任何地区的数据都被正确读出。Write与Print #语句不同,当要将数据写入文件时,Write
#语句会在项目和用来标记字符串的引号之间插入逗号。Write
#语句在将
outputlist中的最后一个字符写入文件后会插入一个新行字符,即回车换行符,(Chr(13) +
Chr(10))。

format函数--------------

来自http://www.cnblogs.com/dongzhiquan/archive/2010/04/13/1994611.html

Format[$] ( expr [ , fmt ] )
format
返回变体型
format$
强制返回为文本
--------------------------------
数字类型的格式化
--------------------------------

   
固定格式参数:
    General Number
普通数字,如可以用来去掉千位分隔号
   
format$("100,123.12","General Number") 返回值
100123.12
    
   
Currency 货币类型,可添加千位分隔号和货币符号
   
format$("100123.12","Currency") 返回值
¥100,123.12
    
   
Fixed 格式为带两位小数的数字
    format$("100123","Fixed")
返回值
100123.00
    
   
Standard 标准,即带千位分隔号和两位小数
   
format$("100123","Standard") 返回值
100,123.00
    
   
Percent 百分数
    format$("100123","Percent") 返回值
10012300.00%
    
   
Scientific 科学记数法
   
format$("100123","Scientific") 返回值
1.00E+05
    
   
Yes/No 当值为0时返回 NO,否则返回 YES
   
format$("100123","Yes/No") 返回值
Yes
    
   
True/False 当值为0时返回 False,否则返回 True
   
format$("100123","True/False") 返回值
True
    
   
On/Off 当值为0时返回 Off,否则返回 On
   
format$("100123","Yes/No") 返回值 On
   
自定义格式参数
    
   
"" 不进行格式化 返回值
原值
    
    0
占位格式化,不足补0
    format$("100123","0000000") 返回值
0100123
    
   
# 占位格式化,不足时不补0
    format$("100123","#######")
返回值
100123
    
   
. 强制显示小数点
    format$("100123.12",".000") 返回值
100123.120
    
   
% 转化为百分数,一个%代表乘以100
    format$("10.23","0.00%")
返回值 1023.00%
    format$("10.23","0.00%%") 返回值
102300.00%%
    
   
, 以千为单位格化
    format$("10.23",",") 返回值
0
    format$("10010.23",",") 返回值
10
    format$("10010.23",",0.00") 返回值
10.01
    
   
E- E+ e- e+ 显示为科学记数(要注意格式语句,否则会和E的其它含义相混)
   
Format$(12.5,"0.00E+00") 返回值
1.25E+01
    
   
$ 强制显示货币符号
   
format$("10.23","{threadcontent}.00") 返回值
¥10.23
    
   
- + ( ) space 按位置显示本样
   
Format$("1234.56","-(0.00)") 返回值
-(1234.56)
    
   
\ 转义符,显示出特殊符号
    Format$("1234.56","\#.00") 返回值
#1234.56
    
   
"ABC" 显示双引号 (" ") 之内的字符串。如在代码中想在 format 中包含一个字符串,必须用 Chr(34) 将文本括起来(34 为双引号
("))
    Format$(123.45,"TTT") 返回值
TTT
   
注:当双引号中的文本包含特殊的参数符号如e,要使用转义符"\",否则会按e的作用显示
    
   
;
类似多目运算符的作用。
    
   
当共有 四 部分时,
   
当大于0时,按第一部分进行格式化,
   
当小于0时按第二部分进行格式化,
   
当等于0时按第三部分进行格式化,
   
当为null值时,按第四部分进行格式化。如:
   
Format$(0,"0.00;负数;零;空") 返回值

    
   
当共有 三 部分时,
   
当大于0时,按第一部分进行格式化,
   
当小于0时按第二部分进行格式化,
   
当等于0时按第三部分进行格式化,如:
    Format$(-10,"0.00;ttt;零")
返回值
ttt
    
   
当共有 两 部分时,
   
当大于或等于0时,按第一部分进行格式化,
   
当小于0时按第二部分进行格式化,
    Format$(-123,"0.00;abc") 返回值
abc
    Format$(123,"0.00;abc") 返回值
123.00
    
   
当共有 一
部分时,按分号左边进行格式化

---------------------------------
日期类型的格式化
---------------------------------
   
注意:在中文操作系统中,系统自动将月份输为如:五月,而非
May
    
   
固定格式参数
    General Date
基本类型
    Format$(Now,"General Date") 返回值
2006-5-25
14:56:15
    
   
Long Date 操作系统定义的长日期
    Format$(Now,"Long Date")
返回值
2006年5月25日
    
   
Medium Date 中日期(yy/mmm/dd)
   
Format$(Now,"Medium Date") 返回值
06-5月-25
    
   
Short Date 操作系统定义的短日期
    Format$(Now,"Short
Date") 返回值
2006-5-25
    
   
Long Time 操作系统定义的长时间
    Format$(Now,"Long Time")
返回值
15:06:36
    
   
Medium Time 带AM/PM的12小时制,不带秒
   
Format$(Now,"Medium Time") 返回值 03:08
PM
    
   
Short Time 24时制的时间,不带秒
    Format$(Now,"Short
Time") 返回值
15:08
    
   
自定义格式参数
    :
用来标识时间字符的间隔
    Format$(Time(),"hh:nn") 返回值
15:25
    
   
/ 用来标识日期字符的间隔
    Format$(now,"yyyy/mm/dd") 返回值
2006-05-25
    
   
c 格式化为国标的日期和时间
    Format$(Now,"c") 返回值 2006-5-25
14:56:15
    
   
y 一年中的第几天
    Format$(Now,"y") 返回值
145
    
   
d 一个月中的第几天(1-366)
    Format$(Now,"d") 返回值
25
    
   
dd 当小于10时前面带0的天数(01-31)
   
Format$("2006-1-7","dd") 返回值
07
    
   
ddd 周几
    Format$(Now,"ddd") 返回值
周四
    
   
dddd 星期几
    Format$(Now,"dddd") 返回值
星期四
    
   
ddddd 显示标准日期
    Format$(Now,"ddddd") 返回值
2006-05-25
    
   
dddddd 长日期
    Format$(Now,"dddddd") 返回值
2006年5月25日
    
   
w 一个星期中的第几天
    Format$(Now,"w") 返回值
5
    
    ww
一年中的第几周
    Format$(Now,"ww") 返回值
21
    
    m
月数(注:当用于时间时,也可以表时为分钟)
    Format$(Now,"m") 返回值
5
    Format$(Now,"h:m") 返回值
16:11
    
   
mm 当小于10时前面带0的月数(注:当用于时间时,也可以表时为带0的分钟)
   
Format$(Now,"m") 返回值 05
    Format$(Now,"hh:mm")
返回值
16:09
    
   
mmm 月份
    Format$(Now,"mmm") 返回值
五月
    
    q
一年中的第几季(1-4)
    Format$(Now,"q") 返回值
2
    
    yy
两位数的年份(00-99)
    Format$(Now,"yy") 返回值
06
    
   
yyyy 四位数的年份(0100-9999)
    Format$(Now,"yyyy")
返回值
2006
    
   
h 一天中的第N小时(0-23)
    Format$(Now,"h") 返回值
16
    
   
hh 当小于10时带0的小时数(00-23)
   
Format$("7:30:28","hh") 返回值
07
    
    n
一小时的分钟数(0-59)
    Format$("7:30:28","n") 返回值
30
    
   
nn 当小于10时带0的分钟数(00-59)
    Format$("7:3:28","n")
返回值
03
    
    s
一分钟中的秒数(0-59)
    Format$("7:30:8","s") 返回值
8
    
    ss
当小于10时带0的分钟数(00-59)
    Format$("7:3:8","ss") 返回值
08
    
   
ttttt 标准时间,小时数当小于10时不带0,与h:mm:ss相同
   
Format$("7:3:28","ttttt") 返回值
7:03:28
    
   
AM/PM 显示当前为AM或为PM
    Format$(Now,"AM/PM") 返回值
PM
    
   
A/P 显示当前为A或为P
    Format$(Now,"A/P") 返回值
P
    
   
AMPM
对0至2359的数值进行判断是AM还是PM,可以看作是同等于对00:00至23:59的数字进行判断,如1000可以看作是10:00。
   
Format$(1000,"AMPM") 返回值
AM
    
   
联合格式化
    
   
m/d/yy Format$(Now,"m/d/yy") 返回值
5-25-06
    
   
d-mmm-yy Format$(Now,"d-mmm-yy") 返回值
25-5月-06
    
   
d-mmmm Format$(Now,"d-mmmm") 返回值
25-五月
    
   
mmmm-yy Format$(Now,"mmmm-yy") 返回值
五月-06
    
   
hh:mm AM/PM Format$(Now,"hh:mm AM/PM") 返回值 04:50
PM
    
   
h:mm:ss a/p Format$(Now,"h:mm:ss a/p") 返回值 4:51:38
p
    
   
h:mm Format$(Now,"h:mm") 返回值
16:51
    
   
h:mm:ss Format$(Now,"h:mm:ss") 返回值
16:51:38
    
   
m/d/yy h:mm Format$(Now,"m/d/yy h:mm") 返回值 5-25-06
16:54

----------------------------------
文本类型的格式化
----------------------------------
   
; 当两部分时,则第一部分为非空格式化,第二部分为null值或空值的格式化表达式
    @
匹配位置插入格式化文本,占位位置不存在时,显示空白(空字符串)
    
   
只有一个@符号时,是在最后面加上格式化文本
    Format$("CHIN","@a")
返回值
CHINa
    
   
有多个@占位符,是按从右至左匹配,并在相应的位置上显示格式化文本
   
Format$("CHIN","@[email protected]@") 返回值
CHaIN
    
   
当与 ! 配合时,则变为从左至右匹配
    Format$("CHIN","[email protected]@@")
返回值
CaHIN
    
   
当占位符比原文本字符串多时,刚在相应位置上添加空格
    Format$("C","@@[email protected]")
返回值
空白空白aC
    
   
&
字符占位符。除在当占位位置不存在时,不显示外,其余均与@相同
    
   
当占位符比原文本字符串多时,刚在相应位置上添加空格
   
Format$("C","&&a&") 返回值
aC
    
   
< 强制小写。将所有字符以小写格式显示。
    Format$("I love
you","<") 返回值 i love
you
    
   
> 强制大写。将所有字符以大写格式显示。
    Format$("I love
you",">") 返回值 I LOVE
YOU
    
   
! 强制由左而右填充字符占位符。缺省值是由右而左填充字符占位符。
   
Format$("CHIN","[email protected]@@") 返回值
CaHIN

----------------------------------------
强制使用中文格式的日期时间
----------------------------------------
   
aaaa 星期
    Format$(Now,"aaaa") 返回值
星期五
    
   
O 中文月份
    Format$(Now,"O") 返回值
五月
    
    o
单字节月份
    Format$(Now,"o") 返回值
5月
    
    A
中文日期
    Format$(Now,"A") 返回值
二十六日
    
   
a 单字节日期
    Format$(Now,"a") 返回值
26日
    
   
E 短中文年份
    Format$(Now,"E") 返回值
六年
    
    e
单单字节年份
    Format$(Now,"e") 返回值
6年
    
   
EE 中文年份
    Format$(Now,"EE") 返回值
二○○六年
    
   
ee 单字节年份
    Format$(Now,"ee") 返回值
2006年
    
   
想不到中文日期的问题就这么容易解决:
    Format$(Now,"EEOA") 返回值
二○○六年五月二十六日

字符串处理函数-------------

mid(字符串,从第几个开始,长度)  在[字符串]中[从第几个开始]取出[长度个字符串] 
例如
mid("小欣无敌",1,3) 则返回 "小欣无"

instr(从第几个开始,字符串1,字符串2) 从规定的位置开始查找,返回字符串2在字符串1中的位置 
例如
instr(1,"小欣无敌","小") 则返回 1,instr(2,"小欣无敌","小"),则返回 0 。 0 表示未找到

InStrRev(字符串1,字符串2,从第几个开始) 从规定的位置开始,从后住前查找,返回字符串2在字符串1中的位置,此处注意,虽是从后住前查找,但是返回的值还是从前往后算的。 
例如
instrRev("小欣无敌","小",2) 则返回 2 ; instrRev("小欣无敌","欣",1) 则返回 0
,因为它从"小欣无敌"的第1个字开始往前查找,所以找不到 。0 表示未找到

left(字符串,长度) 从[字符串]的左边开始返回[长度]个字符 
例如
Left("小欣无敌,3) 则返回 "小欣无"

right(字符串,长度) 从[字符串]的右边开始返回[长度]个字符 
例如
Right("小欣无敌",3) 则返回 "欣无敌"

ucase(字符串) 返回[字符串]的大写形式,只对英文字符有效 
例如
ucase("xiaoXINwuDi") 则返回 "XIAOXINWUDI"

lcase(字符串) 返回[字符串]的小写形式,只对英文字符有效 
例如
lcase("xiaoXINwuDi") 则返回 "xiaoxinwudi"

asc(字符) 返回[字符]的ascii编码,若有多个字符,则只返回首字符的ascii编码,和Chr()函数是一个可逆的过程 
例如
asc("小") 则返回 -12127 ; asc("小欣无敌") 也返回 -12127

chr(ASCii编码) 返回[Ascii]编码所代表的字符,和Chr()函数是一个可逆的过程 
例如
chr(-12127) 则返回 "小" ;chr(asc("小")) 则返回"小"(这里是为了说明asc和chr的可逆性,例用此特性可以加密文本)

trim(字符串) 返回去掉了前、后之后的[字符串] 
例如
trim("   小 欣   无敌   ") 则返回 "小
欣   无敌" ,中间的空格不受任何影响

string(个数,字符) 返回[个数]个[字符] 
例如 string(3,"小") 则返回
"小小小" , 而 string(3,"小欣无敌") 也返回 "小",只有首字符才有效

space(个数) 返回[个数]个空格 
例如 space(5) 则返回
"   "

strconv(字符串,转换的类型) 将字符串转成指定的类型。常用的类型只有两个,vbwide
半角转成全角,vbNarrow 全角转成半角 
例如 strconv("xiao",vbwide) 则返回
"XIAO",而strconv("XIAO",vbnarrow) 则返回 "XIAO" 
’备注 vbwide = 4 ,vbnarrow =
8

len(字符串) 返回[字符串]的长度 
例如 len("小欣无敌") 则返回
4

VBA函数,布布扣,bubuko.com

时间: 2024-10-11 11:53:46

VBA函数的相关文章

VBA函数 format

VBA 的 Format 函数与工作表函数 TEXT 用法基本相同,但功能更加强大,许多格式只能用于VBA 的 Format 函数,而不能用于工作表函数 TEXT . Format用法详解  Format$(Now,"EEOA") 只要这么一句~~~~~就可以得到“ 二○○六年五月二十六日” --------------------------------- Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强制返回为文本 ------

VBA 函数连接access以及excel,同时自动版本

Private Function AccessJoinString() As String If Val(Application.Version) < 12 Then AccessJoinString = "Microsoft.Jet.Oledb.4.0" Else AccessJoinString = "Microsoft.Ace.Oledb.12.0" End If End Function Private Function ExcelJoinString

转载:VBA中使用vlookup函数

VLOOKUP函数不是VBA函数,应写成Application.WorksheetFunction.VLookup()或者Application.VLookup() Application.是引用工作表函数的方法,非VBA函数的工作表函数必须用这种方法,不能直接被VBA引用. 下面是使用案例: Sub usevlookup() Cells(1, 2) = Application.VLookup(Cells(1, 1), Worksheets("imei出库日报").Range(&quo

VBA续嘘嘘

什么是VBA?它有什么作用? A.实现Excel中没有实现的功能. B.提高运行速度. C.编写自定义函数. D.实现自动化功能. E.通过插入窗体做小型管理软件. VBA在哪里存放的?怎么运行? A.模块中 在Excel 2010中若没有"开发工具"项,通过"文件"--"选项"--"自定义功能区"--选中"开发工具"--"确定"(图1). (注:为了提高word2010中插入的图片的质

Office EXCEL VBA数组如何使用

Excel VBA数组入门教程 1. 前言:不要把VBA数组想的太神秘,它其实就是一组数字而已. 2. 数组的维数: Sub 数组示例()  Dim x As Long, y As Long  Dim arr(1 To 10, 1 To 3)  '创建一个可以容下10行3列的数组空间  For x = 1 To 4    For y = 1 To 3       arr(x, y) = Cells(x, y)  '通过循环把单元格区域a1:c4的数据装进数组中    Next y  Next x

在VBA中使用Windows API

VBA是一种强大的编程语言,可用于自定义Microsoft Office解决方案.通过使用VBA处理一个或多个Office应用程序对象模型,可以容易地修改Office应用程序的功能或者能够使两个或多个Office应用程序协同工作以完成单个应用程序无法完成的任务.然而,使用VBA仅能控制操作系统的一小部分.Windows API提供了控制操作系统绝大多数方面的功能.下面,介绍在VBA中使用Windows API的一些知识. 理解APIs API只是一组函数,可用于处理组件.应用程序或操作系统.通常

VBA学习笔记之VBA学习思路

进阶的知识点 1. SQL查询语句和ADO2. 正则表达式和网抓3. 窗体与控件4. API 类模块 等等 作者:SOROSay链接:https://www.zhihu.com/question/26078625/answer/132542043来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 1小时 熟悉数据类型.变量.常量和运算符 1.了解VBA有哪些数据类型 2.知道如何定义变量,了解public/dim/private定义变量时的区别 3.知道如何定义常量

报表研究之工具篇-VBA

最近一直在研究VBA,写报表的工作.将所得的知识,经验总结一下,与大家分享. 工具篇,VBA 1.EXCEL一个最好用的功能就是录制宏,当一个函数拿不准要怎么写,用什么函数表示的时候,录制就帮了大忙了. 2.VBA相对于录制的宏,可以更精确,更聪明,逻辑更清晰,执行也更有效.特别是它的循环和递归,直接解放了人的双手. 3.VBA的基本操作 (1)定位: 基本单位:sheets(页),Rows(行),Columns(列),cells(单元格),RANGE(一个范围的单元格) 相对于每个基本单位,我

一种采用COM交互机制的VBA加密办法,适用于大部分VBA代码加密

原始出处:http://www.cnblogs.com/Charltsing/p/EncryptVBACode.html VBA代码加密是个老生常谈的问题,自从本人的VBA Dumper发布之后,在Office层面上做任何加密都已经失去了意义.所以,很多人开始转战VB封装或者升级到VSTO,Delphi等其他语言.但是,对于广大的VBAer来说,重新学一门语言带来的麻烦要远远超过开发VBA程序所带来的收益.所以,是否能有一种办法在不改变VBA代码的情况下,将VBA代码脱离office进行加密呢?