Tag: 事件处理

我可以通过单击button来强制执行Excel“Workbook_open”事件吗?

我知道Workbook_open事件的主题上有许multithreading并不总是触发。 似乎禁用UDF可能会像数字证书一样工作。 请参阅Excel工作簿打开事件macros不总是运行 但为什么要添加数字证书有帮助? 作为一个替代解决scheme,我想知道是否可能有办法强制Workbook_open事件通过点击button触发? 这样,当初始打开事件失败时,用户可以刷新屏幕combobox等。 我已经尝试添加Workbook_open作为button单击的一部分,但得到"Sub or Function not defined"错误。 我想这个事件不属于“ThisWorkbook”对象! ThisWorkbook.RefreshAll不起作用。 注意:我已经在Workbook_open事件的combobox中添加了额外的编码项目,所以我期待这些出现,如果我可以刷新工作!

编译事件处理程序子例程中的错误

我有一个脚本,应该在特定工作表中进行更改时运行,所以我在指定工作表中创build了一个Worksheet_Change()types的子工具。 但是,一旦进行了更改,VBA会为“ 错误的参数数量或无效的属性分配 ”吐出编译错误,并突出显示子项的第一行,即Private Sub Worksheet_Change(ByVal Target As Range) : Private Sub Worksheet_Change(ByVal Target As Range) Dim newVal As String Dim oldVal As String Dim pageEnd As Integer Dim oldRng As Range Dim newRng As Range Dim toolList As Range Dim语句之后,代码继续执行很多行。 我怎么能通过第一线?

电子表格重新打开时,Excelbutton事件不会触发

当我添加一个button或链接到电子表格时,click事件起作用。 但是,当我保存电子表格,closures它,并重新打开事件不会触发。 AddControl(xlApp, ((TaskPaneView)this.Parent).factory, "text", "A1"); public void AddControl(Microsoft.Office.Interop.Excel.Application xlApp, Microsoft.Office.Tools.Excel.ApplicationFactory factory, string controlText, string address) { Microsoft.Office.Interop.Excel.Worksheet nativeWorksheet = xlApp.ActiveWorkbook.ActiveSheet; Microsoft.Office.Tools.Excel.Worksheet vstoWorksheet = factory.GetVstoObject(nativeWorksheet); var btn = new Microsoft.Office.Tools.Excel.Controls.Button(); btn.Name = "link1"; btn.Text = controlText; btn.Click += new EventHandler(btn_Click); vstoWorksheet.Controls.AddControl(btn, nativeWorksheet.Range[address], controlText); } void btn_Click(object sender, EventArgs e) { } 当打开WorkBook时,是否有一种简单的方法来重新连接事件? 我想我将不得不手动searchbutton和AddHandler的工作簿。 编辑:这是logging,但closures电子表格后没有提到的问题: 在运行时在应用程序级项目中添加控件到工作表

在第一个单元格中input数据后,macros在循环(104次)中运行SQL查询

我有一个macros,当用户在第一个单元格中input数据时运行。 但是,当我在第一个单元格中input数据时,macros执行sql查询并在循环中运行(104次),并将sql select语句的列标题放在电子表格中。 这是我的macros: Sub JobTaskHistory(ByVal Target As Range) Dim sqlstring As String Dim connstring As String Dim Strcode As String Dim rangeTest As Range Set rangeTest = Range("A1") 'Strcode = Trim(InputBox("Please enter a Job Number", "Job Task history")) Strcode = Target.Cells(1, 1).Value sqlstring = "select distinct m.JobNumber , cast(m.ExpectedDate as DATE) 'Ship Date' , […]

更改单元格,如果其他单元格包含文本vba

我曾经有以下代码,它曾经工作,但由于某种原因,它不再起作用。 Private Sub Worksheet_Change(ByVal Target As Range) Dim test As Range Dim KeyCells As Range Dim i As String Set KeyCells = Range("AF3:AF5000") test = Target.Rows.Count If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then For i = Target.Row To (Target.Row + (Target.Rows.Count – 1)) If Not ActiveSheet.Cells(i, 32) = "" Then ActiveSheet.Cells(i, 20).Value = "Closed" End […]

Excel-VBA如何知道哪个dynamic创build的UserForm TextBox已经改变?

我有一个Excel用户窗体,在执行期间创build文本框。 代码如下: Dim CompHandler() As New CCompHandler Dim tb As MSForms.TextBox Dim count As Integer For i in Range(something) If i = anotherthing Then Set tb = UserForm1.Controls.Add("Forms.TextBox.1", "tb" & count) With tb .Width = iTbWidth .Top = count * distance .Left = iTbLeft .Height = iTbHeight .Value = Cells(row, column) ReDim Preserve CompHandler(0 To […]

Excel VBA – 在应用程序打开时运行macros

我已经有了这个devise模板,我想在默认情况下应用到应用程序。 但是需要打开文档才能应用“devise”模板。 因此,无论何时打开/创build新的或现有的工作簿,都必须定位一些处理程序。 那么我可以采取哪种方式?

保存工作簿任何工作表中上次更改/修改的代码不准确

我以前曾经提出一个问题,我一直在使用上次保存的代码在每个代码表上注册更改。 进行更改的时间将被logging在索引页上,以显示每张表的最后修改时间。 然而,代码logging了我访问表格的时间,而不是修改,因此使其不准确。 有没有其他更有效率和准确的解决scheme来注册对表单所做的更改而不是访问? Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As Range) If Sh.Name = "Index" Then Exit Sub i = Sh.Index With Sheets("Index") .Cells(i + 2, 1) = Sh.Name .Cells(i + 2, 2) = Now End With End Sub 这是代码

c#使用事件处理程序WorkbookOpen

我正在编程一个Excel加载项,我想打开工作簿时执行某些代码。 这意味着如果他们打开excel然后打开工作簿,则加载项将执行代码。 我假设我们必须使用事件处理程序:Application.WokbookOpen 但是我不知道如何应用这个。 谢谢!

Excelselect更改事件触发两次C#

我尝试在Excel中调用selectionchange事件,但它触发两次。 我用编组连接到一个打开的Excel文件,所以代码如下 首先我发布Form1上的代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Reflection; using System.Diagnostics; using Excel = Microsoft.Office.Interop.Excel; namespace Excel_Sol_Taraf_Onaylama_V._00 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btn_Excele_Baglan_Classtan_Click(object sender, EventArgs e) { try { ExcelSinifveOlaylar myExcel = new […]