ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > VSTO > 利用VSTO给Excel添加一个自定义的用户面板

利用VSTO给Excel添加一个自定义的用户面板

作者:绿色风 分类: 时间:2022-08-18 浏览:154
楼主
amulee
VSTO的功能十分强大。本里介绍如何利用VSTO给Excel添加一个用户面板,其中存放一个ListBox,让用户选择后自动添加入Excel的单元格中。类似于一个有效性列表输入。动画效果如图:

 

操作过程:
1、新建一个项目,选择Excel工作簿
2、通过添加新建项向该项目内添加一个用户控件

 

3、在该用户控件内添加一个Windows控件ListBox

 
4、添加一张工作表取名为“数据源”,向表内添加数据

 

5、在Thisworkbook内添加代码,用于将这个用户控件添加到表中
  1. Public Class ThisWorkbook
  2.     '定义用户控制面板
  3.     Private MyUC As UserControl1
  4.     Private Sub ThisWorkbook_Startup() Handles Me.Startup
  5.         '将控制面板添加到Excel中
  6.         MyUC = New UserControl1()
  7.         ActionsPane.Controls.Add(MyUC)
  8.         '隐藏数据源表格
  9.         Globals.ThisWorkbook.Sheets("数据源").visible = False
  10.     End Sub

  11.     Private Sub ThisWorkbook_Shutdown() Handles Me.Shutdown

  12.     End Sub

  13. End Class


6、在用户控件内添加代码,用于ListBox数据的添加和选择数据时的输出。注意ListBox的用法和VBA中不同,多列显示也很麻烦,因而此处用Tab将不同列分开。
  1. Public Class UserControl1

  2.     '加载事件
  3.     Private Sub UserControl1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  4.         Dim i As Long
  5.         Dim ArrYS
  6.         '将数据源表格中的内容添加至数组
  7.         ArrYS = Globals.ThisWorkbook.Sheets("数据源").usedrange.value
  8.         With Me.ListBox1
  9.             '清除所有项
  10.             .Items.Clear()
  11.             '绑定数据
  12.             For i = 2 To UBound(ArrYS)
  13.                 '这里的Listbox设置多列有些麻烦,用Tab代替了
  14.                 .Items.Add(ArrYS(i, 1) & vbTab & ArrYS(i, 2))
  15.             Next i
  16.         End With
  17.     End Sub

  18.     'ListBox单击事件
  19.     Private Sub ListBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.Click
  20.         Dim Arr
  21.         Dim Rng As Microsoft.Office.Interop.Excel.Range
  22.         '将选中项转换为数组
  23.         Arr = Split(Me.ListBox1.SelectedItem.ToString, vbTab)
  24.         '设定区域
  25.         Rng = Globals.ThisWorkbook.Application.ActiveCell.Resize(1, 2)
  26.         '赋值
  27.         Rng.Value = Arr
  28.     End Sub
  29. End Class


附件下载:
利用VSTO添加一个自定义用户面板.rar
2楼
kevinchengcw
收藏学习!阿木V5

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap