你选择了单元格:$D$5 单元格内容为:85
AI VBA
2025年3月25日大约 5 分钟使用指南单机版免费版标准版企业版国际版独立版
Office Visual Basic for Applications (VBA) 是事件驱动的编程语言,借助它可以扩展 Office 应用。WebVBA是由快表软件发明的,能实现在浏览器中编写VBA驱动快表模板应用。快表WebVBA遵循的是VB.NET语言语法规则,与ExcelVBA遵循的VB语法上有些许差别,VB语法随意性大,书写不合理编译可通过,但使用时出错难调试。微软公司VB . NET,依托在. Net Framework框架基础上,功能更强大,代码更规范,效率更高效。
在快表WebVBA中我们进一步将常用的操作封装为菜单,在编写时通过菜单选择即可编码,极大的降低了学习难度。随着自然语言处理技术AI大模型的迅速发展,过去传统的编码模式的效率已经无法与AI编码相比。快表WebVBA也是迅速做了功能上的适配,扩展了编码的方式,实现AI智能编码。
本篇将教会您如何在快表WebVBA中通过AI编写代码。
操作步骤
- 进入 【设计】 打开 【命令代码】 并切换到
VBA
选项卡。 - 在要编写代码的事件区域输入要求,并将光标停留在当前行。
- 点击底部的 【AI】 按钮生成。
后续的编译调试与之前的方法一致。
示例:弹出所选单元格的地址
- 在
RangeSelection
事件区域,输入要求提示词弹出一个提示框显示所选中的单元格地址
,然后点击底部的 【AI】 按钮菜单。 - 生成语句如下
EV.GetLock()
Dim cell As IRange = EV.RangeSelection
MessageBox.Show("选定单元格地址: " & cell.Address)
EV.ReleaseLock()
- 编译运行后,选中单元格则提示
选定单元格地址: $G$15
示例:在限定区域内弹出所选单元格地址和内容
- 在
RangeSelection
事件区域,输入要求提示词当前事件是选择事件,当选中C5:J14区域内的一个单元格时,弹出提示框,提示的内容是所选择的单元格地址和单元格内容
,然后点击底部的 【AI】 按钮菜单。

- 生成语句如下
EV.GetLock()
Dim cell As IRange = EV.RangeSelection
If Not (cell.Intersect(Range("C5:J14")) Is Nothing) Then
Dim msg As String = "你选择了单元格:" & cell.Address & vbCrLf & "单元格内容为:" & cell.Value.ToString()
Messagebox.show(msg)
End If
EV.ReleaseLock()

- 编译运行后,选中单元格则提示
你选择了单元格:$D$5 单元格内容为:85
提示

示例:按条件给单元格赋值
- 在
ButtunClick
事件区域,输入要求提示词如果点击按钮时,如果K11单元格的值为0,则在K13单元格填入王军,K14单元格填入同意,K15单元格填入当前日期,否则弹出提示,提示内容为请再次审核。
,然后点击底部的 【AI】 按钮菜单。

- 生成语句如下
EV.GetLock()
Dim cell As IRange
cell = AW.ActiveWorksheet.Range("K11")
If cell.Value = 0 Then
AW.ActiveWorksheet.Range("K13").Value = "王军"
AW.ActiveWorksheet.Range("K14").Value = "同意"
AW.ActiveWorksheet.Range("K15").Value = Date.Today
Else
MsgBox("请再次审核", vbExclamation)
End If
EV.ReleaseLock()
- 编译运行后,如果单元格的值为0,则会给K13、K14、K15单元格赋值,否则则会给出提示。

示例:明细表生成标签
- 在
ButtunClick
事件区域,输入要求提示词点击按钮1的时候,将明细表区域T_2431中每一行数据,在sheet2第3列,第5行开始,分别生成一个表格,表格的标题在第一列,值在第二列,表格的标题为明细表上方一行的文本,数据为每一行的值。生成的表格边框设置为蓝色,细边框。每个表格之间留两行空行。
,然后点击底部的 【AI】 按钮菜单。

- 生成语句如下
If e.Shape.Name = "Button 1" Then
EV.GetLock()
Dim cell, row As IRange
Dim startRow As Integer = 5
Dim startColumn As Integer = 3
Dim sheet2 As IWorksheet = AW.Worksheets("Sheet2")
Dim detailTable As IRange = Range("T_2431")
Dim titleRow As IRange = AW.Worksheets("Sheet1").Range("C13:I13")
For Each row In detailTable.Rows
Dim currentRow As Integer = startRow
For colIndex As Integer = 0 To row.ColumnCount - 1
sheet2.Cells(currentRow, startColumn).Value = titleRow(0, colIndex).Value
sheet2.Cells(currentRow, startColumn + 1).Value = row(0, colIndex).Value
currentRow += 1
Next
' 设置表格线条
Dim tableRange As IRange = sheet2.Range(sheet2.Cells(startRow, startColumn).Address + ":" + sheet2.Cells(currentRow - 1, startColumn + 1).Address)
tableRange.Borders.ColorIndex = 22
tableRange.Borders.LineStyle = SpreadsheetGear.LineStyle.Continuous
' 留两行空行
startRow = currentRow + 2
Next
EV.ReleaseLock()
End If
- 编译运行后,点击Sheet1按钮,则会在Sheet2生成多个表格。


提示
AI VBA在生成过程中会存在需要微调的情况,可以依据编译时的调试提示修正。对于可能会遇到的一些调整我们已经做了初步的整理,并不断增加。参考VBA问题调试。
由于快表软件更新迭代较快,AI VBA功能在不断的升级优化中,可能会存在方式方法上的差异,请以快表最新版为准!