Tag: vbe

select命令在VBA中变为小写

当我的同事写入一个带有Selection引用的macros时,出于某种原因它将Selection的字改为小写字母s并停止它的工作。 例: Selection.Copy 改变 selection.Copy 有人可以build议发生什么事吗? 我猜猜他的设置在某个地方,因为他以前没有写过任何macros。

将“ThisWorkbook”macros导入到另一个工作簿

我需要VBA代码将一个过程导入另一个工作簿中的ThisWorkbook作用域。 我有代码将模块导入到另一个工作簿,但如何将此过程导入到ThisWorkbook范围而不是模块范围? Sub TransferModule() Const modul As String = "Misc" Const tempfile As String = "/Users/Roman/Desktop/temp.bas" Dim WBK As Workbook On Error Resume Next Set WBK = Workbooks.Add ThisWorkbook.VBProject.VBComponents(modul).Export tempfile WBK.VBProject.VBComponents.Import tempfile Kill tempfile End Sub 这从“This”工作簿中取出模块Misc ,将其导出到temp.bas ,然后将其导入到另一个工作簿。 不过,我需要它不是导入到一个模块,而是导入到ThisWorkbook范围。 这是一个Private Sub Workbook_BeforeClose事件。

安装rubberduck后无法看到添加的内容?

我是rubberduck的新手,并安装了最新版本2.0.11。 安装完pipe理员后,我去excel并检查我的com-addins,现在在那里显示rubberduck。 我检查了我的程序数据文件夹,是的,rubberduck是所有文件等。 这只是没有显示在我的Excel中添加。 帮帮我? 操作系统:Windows 7专业版的Excel 2007 64位

VBAdebugging器精度

我有一个single ,我相信C + +等价物是在Excel工作簿模块中的VBA float 。 无论如何,我最初分配的值(876.34497)在即时窗口中四舍五入为876.345,并且在VBA上设置断点时监视并hover工具提示。 但是,如果我将这个Single传递给C ++ DLL,C ++会将其报告为原始值876.34497。 那么,它实际上是作为原始值存储在内存中吗? 这是debugging器的一些限制吗? 不确定这里发生了什么。 难以testing我所传递的是我在C ++端得到的东西。 我试过了: ?CStr(test) 876.345 ?CDbl(test) 876.344970703125 ?CSng(test) 876.345 VBA不是非常简单,所以在某些层面上,它必须以876.34497的forms存储在内存中。 否则,我不认为CDbl会是正确的。

* .xlam加载项和缺less引用的新的VBA项目/新Excel的实例打开加载项

摄制: 启动Excel并打开VBE ALT + F11 。 findTools ,然后单击References 。 向下滚动,直到findMicrosoft Scripting Runtime并勾选它。 将文件保存为Addin.xlam默认的位置应该是这样的: C:\Users\username\AppData\Roaming\Microsoft\AddIns closures这个Excel实例 启动一个新的实例并打开VBE( 现在你应该看到 Addin.xlam 作为第二个可用于工作簿的VBA项目,如果你没有打开 Developer 标签,那么加载项并在名称旁打勾在保存,closures,打开一个新的Excel实例 ) 添加一个新的标准模块 打开References ,你应该看到只有4打勾( 默认 ) 向下滚动并尝试查找Microsoft Scripting Dictionary – 它不在那里!? 所以,这基本上意味着你不能添加引用到新的VBA项目(Book1),因为你的*.xlam已经在使用它 但 你不能交叉使用Scripting库,因为尝试 Dim d as Dictionary 在新创build的Module1失败,因为它不能识别Dictionary对象…. 难道这是一个我从来没有意识到的已知错误,或者我完全忽略了一些东西? 任何解决方法?

ThisWorkbook.ChangeFileAccess xlReadWrite在VBA窗口中为工作簿创build多个VBAProject

我的工作簿有以下公开事件: Private Sub Workbook_Open() ThisWorkbook.ChangeFileAccess xlReadOnly End Sub 然后这个button: Sub UnlockDeveloper() Dim pwd As String pwd = InputBox("Enter developer password:", "Password") If pwd = "password" Then If ThisWorkbook.ReadOnly = True Then ThisWorkbook.ChangeFileAccess xlReadWrite End If Else MsgBox ("Incorrect password.") End If End Sub 这一切都工作正常,但通常,但有时运行UnlockDeveloper子导致VBAProject在VBA窗口中出现两次,我无法知道哪个是真正的文件。 如果我改变了错误,那么一旦closuresExcel,更改就会丢失。 任何人有任何想法如何防止这一点?

如何恢复VBA编辑器到其初始设置?

如何将VBA编辑器恢复到其初始设置? 我有一些麻烦与macros和项目资源pipe理器窗口设置,经过一些糟糕的操作。

导出VBA编辑器(VBE)设置

我对PC上的VBA编辑器进行了很多更改,包括自定义工具栏。 有没有办法导出这些,以便我可以在不同的系统上使用它们,而不必从头开始?

如何正确重命名ThisWorksheet的CodeModule

我正在尝试使用VBA扩展性来重命名Excel工作表的ThisWorkbook代码模块。 我用这条线完成了这个 ThisWorkbook.VBProject.VBComponents("ThisWorkbook").Name = "wb" 我可以在VB编辑器中看到更改,还可以访问工作簿的属性,例如Debug.? wb.Name Debug.? wb.Name 。 但是:如果我保存并closures文件,然后重新打开它,我会得到奇怪的行为。 如果代码模块在重命名之前为空,它将恢复为旧的空ThisWorkbook名称。 如果它不是空的,或者在保存之前填充,我现在同时拥有一个空的ThisWorkbook模块(如果有的话会触发事件) – 填充的wb模块 – 不会触发工作簿事件: 有没有人看到这种行为 – 并知道修复/解决方法?

input左括号时,Excel崩溃

这是我不明白的一个。 鉴于这个类模块(剥离到最低限度重现崩溃): VERSION 1.0 CLASS BEGIN MultiUse = -1 'True END Attribute VB_Name = "TestCrashClass" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Option Explicit Public Function Init() As TestCrashClass Attribute Init.VB_UserMemId = 0 Dim tcc As New TestCrashClass Set Init = tcc End Function Public Property […]