Excel里的VBA是什么,有什么用途?

Excel里的VBA是什么,有什么用途?,第1张

Excel里的VBA是Visual Basic的一种宏语言。VBA是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic 脚本。

掌握了VBA,可以发挥以下作用:

1.规范用户的 *** 作,控制用户的 *** 作行为;

2. *** 作界面人性化,方便用户的 *** 作;

3.多个步骤的手工 *** 作通过执行VBA代码可以迅速的实现;

4.实现一些VB无法实现的功能。

5.用VBA制做EXCEL登录系统。

6.利用VBA可以Excel内轻松开发出功能强大的自动化程序。

扩展资料:

宏语言VBA 适用于在Office 2000 中的所有应用程序,包括Word 、 Excel、PowerPoint、Access、Outlook 以及Project。在Office 97 的各应用程序中,新增了Visual Basic 编辑器。这样,用户无论是在Excel 中,还是在Word 中以至是在Access 中建立和管理VBA 都具有统一的方法和标准。

VBA可以访问许多 *** 作系统函数并支持文档打开时自动执行宏。这使得用这种语言写计算机病毒成为可能。1990年代中后期,宏病毒成为了最流行的计算机病毒类型之一。其它的包括宏语言的项目,如OpenOffice.org,故意从其宏语言中排除了一些功能(如:自动执行)以避免破坏程序。然而,这一特性在很多事务中受到欢迎。

VBA 是基于Visual Basic 发展而来的,它们具有相似的语言结构。Visual Basic 是Microsoft 的主要图形界面开发工具,VBA 5.0 (亦即VBA 97)则是Visual Basic 5.0 的子集。Visual Basic 是由Basic 发展而来的第四代语言。Visual Basic 作为一套独立的 Windows 系统开发工具,可用于开发Windows 环境下的各类应用程序,是一种可视化的、面向对象的、采用事件驱动方式的结构化高级程序设计语言。它具有高效率、简单易学及功能强大的特点。

参考资料来源:百度百科-VBA

可以,VBA编写的程序都可以执行,但是必须在EXCEL、WORD环境下执行,不能独立执行。

编写独立执行的程序需要使用VB,可以编译为一个EXE文件,这个文件可以在任何地方鼠标双击执行。

用代码实现自动化,界面就是一个按钮,点一下就完成了工资表的计算,或者自动生成工资条等。

这就是 *** 作界面。

Private Sub CommandButton3_Click() '检查填充

 Dim skUArr(1 To 1000, 1 To 3)

 Dim skUGs As Integer

 Dim hH As Integer

 Dim zlHH As Integer

 Cells.Find(What:="Weight of box", After:=ActiveCell, LookIn:=xlFormulas _

      , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _

      MatchCase:=False, MatchByte:=False, SearchFormat:=False).Activate

 zlHH = ActiveCell.Row '重量所在行号

 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 = Workbooks.Open(fName)

 Dim M_sku As String, M_fnSku As String, M_qty As Integer

 With SBook.Sheets(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 ThisWorkbook.Sheets(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 SBook.Sheets(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

 SBook.Save

 MsgBox ("检查结果OK,填充完成!")

End Sub

这是其中一个按钮的代码,供参考。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11908587.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存