Tag: vba

如何确保公共VBA方法不显示在Excelmacros列表中?

在Excel VBA(2003)中,我注意到模块或ThisWorkbook中没有任何参数的Public或Friend Sub方法将显示为可以由用户运行的macros。 也就是说,当用户转到工具 – >macros – >macros…(或Alt + F8),该方法将显示在可以运行的列表中。 为了理智(组织,维护等),我确实需要将代码分解成模块。 我希望find一个非hacky的方式来隐藏用户的一些方法,但仍然允许他们对其他代码模块可见。 请注意,所有的代码都包含在同一个应用程序中 ,所以不需要调用外部代码。 我目前的解决方法是使用返回一个布尔值而不是Sub的函数 ,并忽略返回值。 eJamesbuild议在Sub中使用一个可选参数的选项,它也会将这个方法从macros列表中隐藏起来。 但是,这些都不是很正确,所以关于如何构build一个不重要的Excel VBA应用程序的任何build议将不胜感激。

从vba中的单元格地址获取excel的合并单元格的值

如何获得excel的合并单元格的值,例如“$ B $ 4:$ B $ 11”的范围地址在vba

构build撤销到Excel VBAmacros

运行它们后,Excelmacros似乎不允许使用“撤消”。 有没有办法在Excel中将undofunction复制到VBAmacros中?

等到Application.Calculate完成

我可以强制我的vba脚本等待,直到Application.Calculate完成重新计算所有的公式?

Excel VBA,从一个不活动的工作表获取范围

当我查看“Temp”工作表时,此脚本正常工作。 但是,当我在另一个工作表中,则复制命令失败。它提供了一个“应用程序定义或对象定义的错误” Sheets("Temp").Range(Cells(1), Cells(1).End(xlDown)).Copy Sheets("Overview").Range("C40").PasteSpecial 我可以使用这个脚本,但是我有粘贴它的问题 Sheets("Temp").Columns(1).Copy Sheets("Overview").Range("C40").PasteSpecial 我不想激活“温度”表来得到这个 我还可以做些什么

在Excel中使用Hightlight活动行/列而不使用VBA?

我想要实现的是突出显示活动的行或列。 我使用了VBA解决scheme,但是每次使用Selection_change事件时,我都没有机会撤销工作表中的任何更改。 有没有办法以某种方式高亮活动行/列而不使用VBA?

Excelselect与激活

VBA代码wb.Sheets(1).Cells.Select和wb.Sheets(1).Activate之间有什么区别?

EXCEL VBA检查input是否为空或空格

注意。 通过使用TextBox1.Value = ""来检查TextBox1是否为空。 但问题是当用户点击spacebar , TextBox1仍然会将其识别为一个值。 在这种情况下,我的数据将显示为一个space里面有一个space 。 所以我的问题是,是否有任何方法来检查TextBox1.value为空,也不包括space是否有1个或更多的space ? 百万感谢所有。

检查VBA中的列是否存在值

我有一列500行以上的数字。 我需要使用VBA来检查variablesX是否与列中的任何值匹配。 有人可以帮帮我吗?

在Excel-VBA中访问SQL数据库

我正在从MSDN复制一个VBA代码片段,演示如何从一个SQL查询抓取结果到Excel工作表(Excel 2007)中: Sub GetDataFromADO() 'Declare variables' Set objMyConn = New ADODB.Connection Set objMyCmd = New ADODB.Command Set objMyRecordset = New ADODB.Recordset 'Open Connection' objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=localhost;User ID=abc;Password=abc;" objMyConn.Open 'Set and Excecute SQL Command' Set objMyCmd.ActiveConnection = objMyConn objMyCmd.CommandText = "select * from myTable" objMyCmd.CommandType = adCmdText objMyCmd.Execute 'Open Recordset' Set objMyRecordset.ActiveConnection = objMyConn objMyRecordset.Open […]