Tag: vba

没有加载项选项卡虽然加载项加载和工作

我在十年前编写了一个Excel VBA加载项,它使用旧的CommandBars在Excel工具菜单(在Excel 2003和更早版本中)或Excel的加载项选项卡(在Excel 2007及更高版本中)中放置一个菜单。 从97到2013的所有Excel版本中,我从来没有遇到菜单出现问题。 但是现在用户说在Excel 2013中不会显示Excel加载项菜单。通常这意味着加载项没有加载,但在他的情况下加载项被加载和工作。 我们知道加载项被加载和工作,因为加载项添加了用户定义的工作表函数,而且这些UDF对他来说工作正常。 但他想要加载项的菜单,不能。 我的谷歌search显示,有些人在2013年的加载项菜单上遇到了麻烦,但我没有find任何具体的问题。 是的,他试图启用Excel选项>自定义function区中的加载项选项卡。 顺便说一句,这是一个.xla插件,而不是一个COM加载项。 有什么build议么?

数据透视表与数据透视表caching

刷新数据透视表和刷新底层透视图caching之间有什么区别? 换句话说,有没有区别 PivotTable.PivotCache.Refresh PivotTable.RefreshTable

我可以在打开的工作簿上编译VBA吗?

我正在试图find一种在VBA上打开工作簿的代码编译方法。 我可以通过打开VBA环境,进入Debug和“Compile VBAProject”来手动执行此操作,但是想知道是否有办法通过代码在每次打开工作簿时执行此操作。 这样做的目的是将代码加载到计算机内存中,以防止由于使用某些Active X对象而导致的编译错误。 如上所述,我可以手动执行此操作,但可以解决此问题,因为有许多用户使用这个工作簿并且受密码保护,所以并不是所有用户都可以访问debugging选项。

使用excel vba过滤掉多个条件

A列中有8个variables,1,2,3,4,5和A,B,C 我的目标是过滤掉A,B,C,只显示1-5。 我可以使用下面的代码来做到这一点: My_Range.AutoFilter Field:=1, Criteria1:=Array("1", "2", "3","4","5"), Operator:=xlFilterValues 但是代码做的是过滤variables1到5并显示它们。 我不想做相反的事情,但是通过筛选出A,B,C并显示variables1到5,得到相同的结果 我试过这个代码: My_Range.AutoFilter Field:=1, Criteria1:=Array("<>A", "<>B", "<>C"), Operator:=xlFilterValues 但它没有工作。 为什么不能使用这个代码? 它给出了这个错误: 范围类的运行时错误1004 autofilter方法失败 我该怎么做?

修改VBA复制和粘贴代码来search而不是跨search

我有以下的VBA代码: Sub test(): Dim NameValue As String, w1 As Worksheet, w2 As Worksheet Dim i As Long, j As Long, k As Long, c As Long Set w1 = Sheets("Sheet2"): Set w2 = Sheets("Sheet3") GetNameValue: For i = 1 To w1.Range("A" & Rows.Count).End(xlUp).row If w1.Range("A" & i) = "NAME:" Then If InStr(1, NameValue, w1.Range("B" & […]

Excel VBA通​​过一串数字循环,直到find一个字母

我有一个单元格中的string,可以说它说“客户端参考:F123456PassPlus”。 string在数字之前可能没有字母,可能在数字中有一个符号,字母和数字之间可能有空格。 我只需要提取数字作为一个variables。 我有代码来做到这一点,但它不知道什么时候停止循环的string。 当有数字或符号以外的东西时,它应该停止,而是继续进行。 IsNumber = 1 ref = "" If branch = "" Then e = b Else e = b + 1 End If f = 1 While IsNumber = 1 For intpos = 1 To 15 ref = Mid(x, e, f) f = f + 1 Select Case Asc(ref) Case 45 […]

如何更改轴标签的方向?

我在Excel中有一个图表; 我需要以编程方式在一个轴上更改文本标签的方向。 想法?

如何在不改变公式的情况下更改单元格的值(显示文本)?

我有这个VBAmacros的问题。 Sub demoChangeText() Application.Range("B2").Value = "Overidden text" End Sub 我的testing在这里 。 要运行这个macros,在Excel中打开它,按下Ctrl+F8并selectdemoChangeText 。 结果,这个macros改变了单元格B2 (显示给我们的文本)的值,但清除了它的公式。 我需要改变B2的价值,但也需要保留的公式。 所以我的问题是如何更改单元格的显示文本而不更改其公式? UPDATE 我问这个问题,因为我试图解决这个问题

如何保存使用vba的分号分隔csv文件?

最近,我需要将一些数据复制到电子表格中,使用VBA格式化,然后将该表格保存到CSV文件中。 我使用下面的代码: ws.SaveAs Filename:=filestr, Fileformat:=xlCSV ws是我保存的工作表。 这会给我一个逗号分隔的CSV文件。 但是,我想将该表保存为以分号分隔的文件。 我做了一些Googlesearch,发现了以下解决scheme: 转到开始>设置>区域和语言选项 点击自定义button 列表分隔符types旁边分号(;) 我已经按照上面的程序,并将我的代码更改为: ws.SaveAs Filename:=filestr, Fileformat:=xlCSV, Local:=True 但是我仍然得到一个以逗号分隔的CSV文件作为输出。 我使用的Excel版本是Excel 2003,我的操作系统是Windows XP 任何人都可以build议如何保存使用VBA的分号分隔的文件?

将包含macros的工作簿复制到没有macros的工作簿

我能够复制一个工作簿(复制到所需的位置),其中包含一个macros在后台。 这个副本也包含相同的macros。 我的问题是我不希望这个重复的工作簿有一个macros。 任何人都可以告诉如何去做? 先谢谢你!!!