我是第一次将我的VBA代码迁移到VSTO来为excel创建COM加载项 . 我能够将所有代码转换为vb . 不幸的是,我在VS2017中创建Windows窗体时遇到了困难 . 我试图添加Windows窗体但我没有看到任何Windows窗体 . 相反,我只能添加用户控件(WPF) .
我确实设法使用XAML创建表单,但我遇到的最大问题是如何初始化表单 .
进口是下面的进口
Imports Microsoft.Office.Interop.Excel
Imports Excel = Microsoft.Office.Interop.Excel
Imports System.Windows.Forms
我在下面的代码中看到以下错误
处理MyBase.Load - >无法找到事件“加载”
在此之后我没有看到任何工作 . 有人可以解释我们如何处理加载和卸载用户控件(WPF) . 也是为什么我无法导入Windows窗体 .
Private Sub UserControl1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim RefSht As Object
Dim TableList() As String
Dim IDTable As String
Dim count As Integer : count = 0
Dim TextBox1 As System.Windows.Controls.TextBox
Dim TextBox2 As System.Windows.Controls.TextBox
Dim TextBox3 As System.Windows.Controls.TextBox
Dim TextBox4 As System.Windows.Controls.TextBox
Dim TextBox5 As System.Windows.Controls.TextBox
Dim TextBox6 As System.Windows.Controls.TextBox
Dim cmbIDTable As System.Windows.Controls.ComboBox
Dim wb As Excel.Workbook = Globals.ThisAddIn.Application.ActiveWorkbook
RefSht = wb.Worksheets("RefSheet")
On Error Resume Next
IDTable = ReportSheet.Range("IDTable")
TextBox1.Text = ReportSheet.Range("Title")
TextBox2.Text = ReportSheet.Range("Component")
TextBox3.Text = ReportSheet.Range("Selection")
TextBox4.Text = ReportSheet.Range("Parameters")
TextBox5.Text = ReportSheet.Range("Summary")
TextBox6.Text = ReportSheet.Range("Category")
TableList = Split(GetTableListData(), ";")
cmbIDTable.ItemsSource = TableList
While IDTable <> TableList(count)
count = count + 1
End While
cmbIDTable.SelectedItem = count
End Sub
1 回答
在问题背后遇到很多麻烦之后,我发现我的VS中没有安装Windows窗体 . 我已经包含了这个包,我现在能够工作了 .