
用代码实现自动化,界面就是一个按钮,点一下就完成了工资表的计算,或者自动生成工资条等。
这就是 *** 作界面。
Private Sub CommandButton3_Click() '检查填充
Dim skUArr(1 To 1000, 1 To 3)
Dim skUGs As Integer
Dim hH As Integer
Dim zlHH As Integer
CellsFind(What:="Weight of box", After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, MatchByte:=False, SearchFormat:=False)Activate
zlHH = ActiveCellRow '重量所在行号
skmGs = 0
hH = 5
Do While Trim(Cells(hH, 1)Text) <> ""
skUGs = skUGs + 1
skUArr(skUGs, 1) = Trim(Cells(hH, 1)Text)
skUArr(skUGs, 2) = Trim(Cells(hH, 4)Text)
skUArr(skUGs, 3) = Cells(hH, 10)Value
hH = hH + 1
Loop
Dim fName As String
Dim SBook As Workbook
Call SelectFile(fName)
Set SBook = WorkbooksOpen(fName)
Dim M_sku As String, M_fnSku As String, M_qty As Integer
With SBookSheets(1)
For I = 1 To skUGs
M_sku = Trim(Cells(5 + I - 1, 1)Text)
M_fnSku = Trim(Cells(5 + I - 1, 4)Text)
M_qty = Cells(5 + I - 1, 9)Value
If skUArr(I, 1) <> M_sku Then
MsgBox ("第" & I & "条记录的SKU不一致!")
Exit Sub
End If
If skUArr(I, 2) <> M_fnSku Then
MsgBox ("第" & I & "条记录的FNSKU不一致!")
Exit Sub
End If
If skUArr(I, 3) <> M_qty Then
MsgBox ("第" & I & "条记录的QTY不一致!")
Exit Sub
End If
Next I
End With
Dim qtyArr() As Integer
Dim boxGs As Integer
Dim boxArr()
With ThisWorkbookSheets(1)
boxGs = Cells(4, 200)End(xlToLeft)Column
ReDim qtyArr(1 To skUGs, 1 To boxGs)
ReDim boxArr(1 To 4, 1 To boxGs)
'读取数量
For I = 1 To skUGs
For J = 1 To boxGs
qtyArr(I, J) = Cells(5 + I - 1, 12 + J - 1)Value
Next J
Next I
'读取box
For I = 1 To 4
For J = 1 To boxGs
boxArr(I, J) = Cells(zlHH + I - 1, 12 + J - 1)Value
Next J
Next I
End With
'填充
With SBookSheets(1)
'Cells(5, 12)Resize(skUGs, boxGs) = qtyArr
'Cells(zlHH, 12)Resize(4, boxGs) = boxArr
For I = 1 To skUGs
For J = 1 To boxGs
If qtyArr(I, J) > 0 Then
Cells(5 + I - 1, 12 + J - 1) = qtyArr(I, J)
End If
Next J
Next I
For I = 1 To 4
For J = 1 To boxGs
Cells(zlHH + I - 1, 12 + J - 1) = boxArr(I, J)
Next J
Next I
End With
SBookSave
MsgBox ("检查结果OK,填充完成!")
End Sub
这是其中一个按钮的代码,供参考。
直到90年代早期,使应用程序自动化还是充满挑战性的领域对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言例如:可以用EXCEL的宏语言来使EXCEL自动化,使用WORD BASIC使WORD自动化,等等微软决定让它开发出来的应用程序共享一种通用的自动化语言--------Visual Basic For Application(VBA),可以认为VBA是非常流行的应用程序开发语言VASUAL BASIC 的子集实际上VBA是"寄生于"VB应用程序的版本VBA和VB的区别包括如下几个方面:
1 VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(EXCEL等)自动化
2 VB具有自己的开发环境,而VBA必须寄生于已有的应用程序
3 要运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序是可执行文件(EXE),而VBA开发的程序必须依赖于它的"父"应用程序,例如EXCEL
尽管存在这些不同,VBA和VB在结构上仍然十分相似事实上,如果你已经了解了VB,会发现学习VBA非常快相应的,学完VBA会给学习VB打下坚实的基础而且,当学会在EXCEL中用VBA创建解决方案后,即已具备在WORD ACCESS OUTLOOK FOXPRO PROWERPOINT 中用VBA创建解决方案的大部分知识
VBA一个关键特征是你所学的知识在微软的一些产品中可以相互转化
仄�"
转自百度百科
--------------------------------
VBA
Visual Basic for Applications(VBA)是一种Visual Basic的一种宏语言,主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic Script。1994年发行的Excel 50版本中,即具备了VBA的宏功能。
VBA是什么
直到90年代早期,使应用程序自动化还是充满挑战性的领域对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言例如:可以用EXCEL的宏语言来使EXCEL自动化,使用WORD BASIC使WORD自动化,等等微软决定让它开发出来的应用程序共享一种通用的自动化语言--------Visual Basic For Application(VBA),可以认为VBA是非常流行的应用程序开发语言VISUAL BASIC 的子集实际上VBA是寄生于VB应用程序的版本 VBA6
VBA和VB的区别包括如下几个方面:
1 VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(EXCEL等)自动化 2 VB具有自己的开发环境,而VBA必须寄生于已有的应用程序 3 要运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序是可执行文件(EXE),而VBA开发的程序必须依赖于它的父应用程序,例如EXCEL 尽管存在这些不同,VBA和VB在结构上仍然十分相似事实上,如果你已经了解了VB,会发现学习VBA非常快相应的,学完VBA会给学习VB打下坚实的基础而且,当学会在EXCEL中用VBA创建解决方案后,即已具备在WORD ACCESS OUTLOOK FOXPRO PROWERPOINT 中用VBA创建解决方案的大部分知识 VBA一个关键特征是你所学的知识在微软的一些产品中可以相互转化 VBA可以称作EXCEL的“遥控器” VBA究竟是什么更确切地讲,它是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案 此外,如果你愿意,还可以将EXCEL用做开发平台实现应用程序 Office取得巨大成功的一个重要原因就是VBA,使用VBA可以完成很多事情,基于Excel、Word的VBA小程序不计其数。 VBA程序员很多是业余程序员,正因为业余,解决的却是工作中需要解决的问题;所以,VBA程序大多都是只是在部门内部或个人使用的小工具。 集成了VBA的其他应用程序也很多,但真正能为程序增色的不多。 大多数人看到了VBA可以自动化一个程序,可以扩展已有程序,但没有看到在Office中,VBA代码可以是录制的,而不是写出来的,带来的好处是,学习曲线变得非常缓。如果没有宏录制功能,要熟悉某个Office组件的对象模型,绝非一日之功。 以ArcGIS为例,ArcGIS扩展必须使用ArcObject,不管是使用VBA也罢,VB也罢,还是C++也罢。但同时,ArcObject的学习不是一天两天可以搞定,对于业余程序员,要使用VBA来扩展ArcGIS,几乎没有可能;专业程序员又不屑使用VBA;而对于公司,如果要基于ArcObject来扩展ArcGIS,选择VBA意味着源码的保护很困难。所以,ArcGIS的VBA就如同鸡肋。 不过,学习AO的时候,使用VBA比使用其他语言要容易一些,写几行代码,然后直接运行测试结果,这种交互式的学习应该是最好的学习方法。 ArcGIS以及AO与Office相比,还有一个很大的差别,就是ArcGIS缺乏中等粒度的对象,例如Word和Excel的Range对象。对于Office开发,可以在对底层小粒度对象一无所知的状况下做很多事情,这就是抽象的力量。常人可以处理的复杂度是有限的,面对数十个对象和几百个对象,后者需要付出的努力不是10倍,而是数十倍或更多,因为在学习过程中,必须可以把这些对象在大脑中很好的组织,以控制其复杂度。
Visual Basic for Applications(简称VBA)是新一代标准宏语言,是基于Visual Basic for Windows 发展而来的。它与传统的宏语言不同,传统的宏语言不具有高级语言的特征,没有面向对象的程序设计概念和方法。而VBA 提供了面向对象的程序设计方法,提供了相当完整的程序设计语言。VBA 易于学习掌握,可以使用宏记录器记录用户的各种 *** 作并将其转换为VBA 程序代码。这样用户可以容易地将日常工作转换为VBA 程序代码,使工作自动化。因此,对于在工作中需要经常使用Office 套装软件的用户,学用VBA 有助于使工作自动化,提高工作效率。另外,由于VBA 可以直接应用Office 套装软件的各项强大功能,所以对于程序设计人员的程序设计和开发更加方便快捷。
以上就是关于VBA代码是什么全部的内容,包括:VBA代码是什么、VBA 程序 含义解释、VBA是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)