小编bre*_*tdj的帖子

迭代未注册的加载项(.xla)

我需要帮助

  • 弄清楚如何使用菜单路径迭代尚未在Excel中注册的当前打开的Excel加载项文件(.xla)Tools > Add-ins.
  • 更具体地说,我对任何未出现在加载项对话框中的工作簿感兴趣,但有ThisWorkbook.IsAddin = True.

证明问题:

尝试按如下方式遍历工作簿不会使工作簿具有.AddIn = True:

Dim book As Excel.Workbook

For Each book In Application.Workbooks
    Debug.Print book.Name
Next book
Run Code Online (Sandbox Code Playgroud)

通过加载项循环不会获得未注册的加载项:

Dim addin As Excel.AddIn

For Each addin In Application.AddIns
    Debug.Print addin.Name
Next addin
Run Code Online (Sandbox Code Playgroud)

循环通过VBProjects集合可以正常工作,但前提是用户在宏安全设置中具有对Visual Basic项目的特别可信访问权限 - 这很少:

Dim vbproj As Object

For Each vbproj In Application.VBE.VBProjects
    Debug.Print vbproj.Filename
Next vbproj
Run Code Online (Sandbox Code Playgroud)

但是,如果已知工作簿的名称,则无论是否为加载项,都可以直接引用工作簿:

Dim book As Excel.Workbook
Set book = Application.Workbooks("add-in.xla")
Run Code Online (Sandbox Code Playgroud)

但是,如果名称未知,那么如何获取对此工作簿的引用,并且不能依赖用户的宏安全设置?

excel vba add-in excel-vba excel-addins

9
推荐指数
1
解决办法
3923
查看次数

从任务计划程序启动excel工作,现在失败

我已经使用Task Scheduler和cscript和vbscript运行我的excel 2000 vba程序大约一年了.几天前它停止了工作.我可以手动运行程序.每当任务计划程序启动它时,黑色窗口显示约1-2秒然后关闭.

我试过评论错误处理,但我总是得到相同的结果.我尝试过显示,MsgBoxes但结果仍然相同.

我在你的论坛上找到了一个更简单的方法,我尝试了相同的结果.

那么我需要做些什么来调试呢?

这是我在这个论坛上尝试的代码:

Option Explicit

Dim xlApp, xlBook

Set xlApp = CreateObject("Excel.Application")
'~~> Change Path here
Set xlBook = xlApp.Workbooks.Open("C:\My Documents\___Stocksfilter.xls", 0, True)
xlApp.Run "A_Pick"
xlBook.Close
xlApp.Quit

Set xlBook = Nothing
Set xlApp = Nothing

WScript.Echo "Finished."
WScript.Quit
Run Code Online (Sandbox Code Playgroud)

这是我一直在使用的代码:

'Script to start my filter.xls program with named macro
'MsgBox "In RunExcel"

' Create an Excel instance
Dim myExcelWorker
Set myExcelWorker = CreateObject("Excel.Application") 

' Disable Excel UI elements
myExcelWorker.DisplayAlerts = False
myExcelWorker.AskToUpdateLinks = False …
Run Code Online (Sandbox Code Playgroud)

vbscript excel vba wsh scheduled-tasks

9
推荐指数
1
解决办法
4093
查看次数

我可以在VBA中以编程方式检查Excel函数签名吗?

而不是通过名称显式访问所有参数,有没有办法从函数内以编程方式获取函数参数列表?

所以对于这个函数签名:

Function doSomething(Arg1 as String, Arg2 as Range, Optional Arg3 as String):
Run Code Online (Sandbox Code Playgroud)

理想情况下,是否存在包含参数名称及其元数据(类型,可选,默认值等)的对象?例如,Me.Arguments此函数中的代码将生成如下字典:

{
  "Arg1": {
    "Type": String,
    "Optional": False,
    "Default": Nothing
  },
  "Arg2": {
    "Type": Range,
    "Optional": False,
    "Default": Nothing
  },
  "Arg1": {
    "Type": String,
    "Optional": True,
    "Default": Nothing
  }
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

excel vba excel-vba

9
推荐指数
1
解决办法
1037
查看次数

使用VBA将Excel图表粘贴到Powerpoint中

我正在尝试创建一个excel宏来复制Excel工作表上显示的图表,并将它们粘贴(粘贴特殊)到PowerPoint中.我遇到的问题是如何将每个图表粘贴到不同的幻灯片上?我根本不知道语法..

这是我到目前为止(它的工作原理,但它只粘贴到第一张表):

Sub graphics3()

Sheets("Chart1").Select
ActiveSheet.ChartObjects("Chart1").Activate
ActiveChart.ChartArea.Copy
Sheets("Graphs").Select
range("A1").Select
ActiveSheet.Paste
     With ActiveChart.Parent
     .Height = 425 ' resize
     .Width = 645  ' resize
     .Top = 1    ' reposition
     .Left = 1   ' reposition
 End With

Dim PPT As Object
Set PPT = CreateObject("PowerPoint.Application")
PPT.Visible = True
PPT.Presentations.Open Filename:="locationwherepptxis"

Set PPApp = GetObject("Powerpoint.Application")
Set PPPres = PPApp.activepresentation
Set PPSlide = PPPres.slides _
    (PPApp.ActiveWindow.Selection.SlideRange.SlideIndex)

' Copy chart as a picture
ActiveChart.CopyPicture Appearance:=xlScreen, Size:=xlScreen, _
    Format:=xlPicture

' Paste chart
PPSlide.Shapes.Paste.Select

' Align pasted chart …
Run Code Online (Sandbox Code Playgroud)

excel powerpoint vba paste

8
推荐指数
1
解决办法
6万
查看次数

MMULT在行向量之间的点积不在Excel中工作

我使用Excel在两个行向量之间做一些点积:

=MMULT(B1049:M1049, TRANSPOSE(B1050:M1050))
Run Code Online (Sandbox Code Playgroud)

但它不起作用,因为公式的单元格显示"#VALUE!".我想知道为什么?谢谢!

注意,"B1049:M1049"和"B1050:M1050"中的所有单元格都是数字.

PS:这个问题在这里或超级用户更合适吗?

excel excel-formula

8
推荐指数
2
解决办法
2万
查看次数

使用visual basic访问收件箱中的子文件夹?

Dim olApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Set olApp = Outlook.Application
Set objNS = olApp.GetNamespace("MAPI")
Set myOlItems = objNS.GetDefaultFolder(olFolderInbox).Items
Run Code Online (Sandbox Code Playgroud)

我使用上面的代码访问主要的Outlook收件箱,但如何使用vba访问收件箱中的文件夹和邮件!

outlook vba outlook-vba subdirectory

8
推荐指数
1
解决办法
6万
查看次数

如何在powerpoint中更新excel嵌入式图表?

我有30张图表是从excel创建的,并粘贴到powerpoint幻灯片上.每个月,我都必须通过手动点击图表和编辑来更新这30个嵌入式图表.

我知道有一个选项可以使用paste special,因此可以通过单击更新链接自动更新图表中的数据.但是,我的图表需要由一些用户编辑.粘贴特殊选项不允许用户编辑图表.因此,我无法使用此粘贴特殊选项.

我认为解决方案在于在powerpoint中编写vba.这里有专家可以编写这个vba代码,以便在powerpoint中更新所有图表吗?我目前正在使用powerpoint 2007.非常感谢您的帮助.

powerpoint powerpoint-vba

8
推荐指数
1
解决办法
9万
查看次数

哪个SUB正在调用此SUB

有没有人知道如何在进行堆栈跟踪.我正在尝试做类似的事情:

Public Sub a()   
    Call c    
End Sub    

Public Sub b()    
    Call c    
End Sub

Public Sub c()    
    Debug.Print "Which sub has called me ?"    
End Sub
Run Code Online (Sandbox Code Playgroud)

我想要做的Sub c是显示是否通过Sub aSub b不通过任何参数调用它.在我只是显示堆栈,但我不知道这是否甚至可能在VBA - 任何想法?

ms-access vba

8
推荐指数
2
解决办法
4966
查看次数

确定未锁定单元格范围的快速方法

在线论坛中的一个常见请求是用于识别表单中未锁定单元格的代码.

标准解决方案使用循环迭代活动工作表的已使用部分中的每个单元格,测试每个单元格确定它是否被锁定.甲代码示例这种方法在下面列出.

鉴于在循环细胞范围内固有的差的性能,可能有哪些优越的方法?

(注意:我确实打算添加我自己现有的方法,以前作为潜在的方法托管在另一个论坛上 - 但如果提供的话,我将接受另一个[合适的]方法作为答案)

范围识别未锁定细胞的方法

Sub SelectUnlockedCells()
`http://www.extendoffice.com/documents/excel/1053-excel-identify-select-locked-cells.html
Dim WorkRange As Range
Dim FoundCells As Range
Dim Cell As Range
On Error GoTo SelectUnlockedCells_Error

Set WorkRange = ActiveSheet.UsedRange
For Each Cell In WorkRange
    If Cell.Locked = False Then
        If FoundCells Is Nothing Then
            Set FoundCells = Cell
        Else
            Set FoundCells = Union(FoundCells, Cell)
        End If
    End If
Next Cell
If FoundCells Is Nothing Then
    MsgBox "All cells are locked."
Else
    FoundCells.Select
End If

On Error GoTo …
Run Code Online (Sandbox Code Playgroud)

excel vba

8
推荐指数
2
解决办法
4396
查看次数

在Excel列图上显示高于条形的百分比

我有一个从数据透视表中提取数据的图表,因此我得到了一个计数分布(A类中有多少,B中有多少,C中有多少等)

但在每个栏上方,我也希望显示整体的百分比.因此,举例来说,我可能会说"这个类别A的栏显示我们显然有2000个,但看到栏顶上的数字,它只占总数的15%"

这有意义吗?

excel charts excel-formula

8
推荐指数
1
解决办法
9万
查看次数