周一至周五 : 08:30 - 17:30 客服专员电话/微信:17301649370 QQ:2982200781
微信咨询

扫码微信咨询

关注公众号

关注微信公众号

电话: 021 5161 9370
返回顶部
自定义填报界面VBA
显示全部楼层 倒序浏览 发表日期 2026-05-31 16:11:28 39次阅读 0次回复
20260531160721.png

GIF 2026-05-30 18-45-59.gif



  1. Imports SpreadsheetGear
  2. Imports C1.Silverlight
  3. Imports C1.Silverlight.C1MessageBoxButton
  4. Imports C1.Silverlight.C1MessageBoxIcon
  5. Imports Newtonsoft.Json
  6. Imports Newtonsoft.Json.Linq
  7. Imports Microsoft.VisualBasic
  8. Imports System.IO
  9. Imports System.Text
  10. Imports System.Net
  11. Imports System.Windows.forms
  12. Imports System.Threading.Tasks
  13. Namespace ExcelViewVBDotnet
  14.    Public Class StandardInterface
  15.        '预留位置1
  16.        '预留位置2
  17.        Dim EV As SpreadsheetGear.Windows.Controls.WorkbookView,AW As SpreadsheetGear.IWorkbook,Range As SpreadsheetGear.IRange
  18.            Dim CF,TS,VW As Object
  19.        Public Sub Workbook_Open(OldRoot As Object,NewRoot As Object,Excel As SpreadsheetGear.Windows.Controls.WorkbookView)
  20.            EV = Excel
  21.            Excel.GetLock()
  22.            AW = Excel.ActiveWorkbook
  23.            Range = AW.ActiveWorksheet.Range
  24.            Excel.ReleaseLock()
  25.                      
  26.                    '绑定工具条触发,不能测试运行
  27.            CF = OldRoot.Children(1)
  28.                    '绑定显示区域,不能测试运行
  29.                    VW = OldRoot.Children(3)
  30.                    '绑定工具条区域,不能测试运行
  31.                    TS = OldRoot.Children(5)       
  32.                    '调整表格界面(上边距留40像素给控件区域,下边距留10像素)
  33.                    VW.Margin = New Thickness(0, 45, 0, 0)
  34.                   
  35.                    '实例化容器和输入控件
  36.                    Dim SP As New StackPanel
  37.                    Dim Lbl_Field1 As New System.Windows.Controls.TextBlock
  38.                    Dim TB_Field1 As New System.Windows.Controls.TextBox
  39.                    Dim Lbl_Field2 As New System.Windows.Controls.TextBlock
  40.                    Dim TB_Field2 As New System.Windows.Controls.TextBox
  41.                   
  42.                    '容器设置
  43.                    SP.Margin = New Thickness(0, 0, 0, 0)
  44.                    SP.VerticalAlignment = System.Windows.VerticalAlignment.Top
  45.                    SP.Orientation = System.Windows.Controls.Orientation.Horizontal
  46.                    Grid.SetRow(SP, 1)
  47.                    Grid.SetRowSpan(SP, 50)   '大幅扩展背景区域高度
  48.                    Grid.SetColumnSpan(SP, 3)
  49.                   
  50.                    '========== 第一个字段标签 + 输入框 ==========
  51.                    Lbl_Field1.Text = "第一个字段"
  52.                    Lbl_Field1.Foreground = Application.Current.Resources("Foreground2")
  53.                    Lbl_Field1.VerticalAlignment = System.Windows.VerticalAlignment.Center
  54.                    Lbl_Field1.Margin = New Thickness(8, 0, 3, 0)
  55.                   
  56.                    TB_Field1.Width = 200
  57.                    TB_Field1.Height = 30
  58.                    TB_Field1.FontSize = 14
  59.                    TB_Field1.VerticalContentAlignment = System.Windows.VerticalAlignment.Center
  60.                    TB_Field1.Margin = New Thickness(0, 2, 12, 2)
  61.                    TB_Field1.Foreground = Application.Current.Resources("Foreground2")
  62.                    '失去焦点时写入F_66233单元格
  63.                    AddHandler TB_Field1.LostFocus, Sub(s, e)
  64.                                                         If Not String.IsNullOrEmpty(TB_Field1.Text) Then
  65.                                                             aw.WorkbookSet.GetLock()
  66.                                                             Range("F_66233").Value = TB_Field1.Text
  67.                                                             aw.WorkbookSet.ReleaseLock()
  68.                                                         End If
  69.                                                      End Sub
  70.                   
  71.                    '========== 第二个字段标签 + 输入框 ==========
  72.                    Lbl_Field2.Text = "第二个字段"
  73.                    Lbl_Field2.Foreground = Application.Current.Resources("Foreground2")
  74.                    Lbl_Field2.VerticalAlignment = System.Windows.VerticalAlignment.Center
  75.                    Lbl_Field2.Margin = New Thickness(8, 0, 3, 0)
  76.                   
  77.                    TB_Field2.Width = 200
  78.                    TB_Field2.Height = 30
  79.                    TB_Field1.FontSize = 14
  80.                    TB_Field1.VerticalContentAlignment = System.Windows.VerticalAlignment.Center
  81.                    TB_Field2.Margin = New Thickness(0, 2, 12, 2)
  82.                    TB_Field2.Foreground = Application.Current.Resources("Foreground2")
  83.                    '失去焦点时写入F_66234单元格
  84.                    AddHandler TB_Field2.LostFocus, Sub(s, e)
  85.                                                         If Not String.IsNullOrEmpty(TB_Field2.Text) Then
  86.                                                             aw.WorkbookSet.GetLock()
  87.                                                             Range("F_66234").Value = TB_Field2.Text
  88.                                                             aw.WorkbookSet.ReleaseLock()
  89.                                                         End If
  90.                                                      End Sub
  91.                   
  92.                    '向容器添加所有控件
  93.                    SP.Children.Add(Lbl_Field1)
  94.                    SP.Children.Add(TB_Field1)
  95.                    SP.Children.Add(Lbl_Field2)
  96.                    SP.Children.Add(TB_Field2)
  97.                   
  98.                    '向界面添加容器
  99.                    OldRoot.Children.Add(SP)
  100.                   
  101.                    '添加工具条按钮
  102.                    Dim BT1 As New Button
  103.            BT1.Name = "BT_TQ"
  104.            BT1.Content = "开始查询"
  105.                    BT1.Margin = New Thickness(0, 2, 0, 2)
  106.                    BT1.Padding = New Thickness(13, 3, 13, 3)
  107.                    BT1.Style = Application.Current.Resources("ButtonStyle")
  108.                    BT1.Foreground = Application.Current.Resources("Foreground1")
  109.                    AddHandler BT1.Click, Sub()
  110.                                                                          'KBFormula(1,"提取公式名称")或KBFormula(2,"传递公式名称")或KBFormula(3,"列表公式名称")
  111.                                                                          App.KBFormula(1,"提取明细")
  112.                                  End Sub
  113.                    TS.Children.Insert(16, BT1)
  114.                    '位置:2保存3新增4提交5退回6打印7预览8导出9捕获10上传图片11上传附件12插入行13插多行14删除行15查找16最后
  115.         End Sub'打开时执行事件
  116.                
  117.        Public Sub RangeSelection(sender As Object,e As SpreadsheetGear.Windows.Controls.RangeSelectionChangedEventArgs)
  118.        End Sub'单元格选择后执行的事件

  119.        Public Sub RangeChanged(sender As Object,e As SpreadsheetGear.Windows.Controls.RangeChangedEventArgs)
  120.        End Sub'单元格编辑完成后执行事件

  121.        Public Sub ButtunClick(sender As Object,e As SpreadsheetGear.Windows.Controls.ShapeActionEventArgs)
  122.        End Sub'按钮/标签点击事件

  123.        Public Sub FollowHyperlink(sender As Object)
  124.        End Sub '暂不支持

  125.    End Class
  126. '  注:除事件字眼下可以自定义代码外的所有代码不允许改动,否则编译将有可能失败。
  127. End Namespace
复制代码



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则  允许回帖邮件提醒楼主

快表软件是国内较早研究表格类软件开发平台的团队之一,迄今已有十多年的行业经验.致力于为企事业单位提供实用可靠的数字化平台。
  • 微信公众号

  • 微信小商店

  • 微信客服

  • Powered by Discuz! X3.4 | Copyright © 2022-2024, XiRong Soft. | 快表软件
  • 沪ICP备13033196号 | 营业执照 |上海西戎软件科技有限公司|沪公网安备31011502002146号|沪ICP备13033196号 |