本帖最后由 快表帝国客服01 于 2025-4-1 14:46 编辑
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】 按钮菜单。

快表AI VBA弹出提示框
- 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()
复制代码

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

AI生成VBA按条件给单元格赋值- 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单元格赋值,否则则会给出提示。

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

批量导入数据支持ID测试生成效果
|
快表帝国客服01