小编Rub*_*uck的帖子

如何在Outlook中收到新邮件后触发宏运行?

我正在编写一个宏,它根据从Nagios服务器收到的警报作为电子邮件在数据库上创建票证.但是,我不能让宏在检查邮件时在无限循环中运行,因为它太资源太重而使我的桌面挂起.我需要找到一种方法只在收到新邮件时触发宏.

我在MSDN网站上查找了NewMail事件的内容,但我找不到任何连贯的内容.任何人都可以向我展示一些示例代码,以显示如何从新邮件事件中触发宏吗?

outlook vba triggers outlook-vba

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

如何在Locals窗口中获取实现接口的类的属性值?

这真的困扰着我,妨碍了我的开发/调试.每当我声明我正在实现的接口的变量类型时,Locals Window都不会显示它的属性值.相反,它只是读取

Object不支持此属性或方法

这很愚蠢,因为它确实如此.事实上,它必须履行与Interface的合同.

如果我将变量声明为接口的具体实现,则窗口按预期工作.但是,这完全违背了编码到抽象的目的.

如何让locals窗口正确显示类的属性值?

最小,完整和可验证的示例:

创建一个IClass用作接口的类.

Option Explicit

Public Property Get Name() As String
End Property
Run Code Online (Sandbox Code Playgroud)

创建一个Class1实现接口的.

Option Explicit

Implements IClass

Public Property Get Name() As String
    Name = "Class1"
End Property

Private Property Get IClass_Name() As String
    IClass_Name = Name
End Property
Run Code Online (Sandbox Code Playgroud)

最后,常规.bas模块中的一些测试代码来说明问题.

Option Explicit

Public Sub test()
    Dim x As Class1
    Dim y As IClass

    Set x = New Class1
    Debug.Print x.Name

    Set y = New Class1
    Debug.Print y.Name

    Stop …
Run Code Online (Sandbox Code Playgroud)

ide oop vba interface

18
推荐指数
2
解决办法
964
查看次数

如何在Visual Studio中对Windows 10应用程序进行单元测试?

如何在Visual Studio 2015中对Windows 10应用程序进行单元测试?

I created a Blank App Universal Windows project and added a new Unit Test Project to the solution, but when I try to add a reference to my UWP app in the Test Project, I get an error saying 'Unable to add a reference to project "Project Name"'.

在此输入图像描述

unit-testing win-universal-app visual-studio-2015

18
推荐指数
2
解决办法
6100
查看次数

如何在运行时获取过程或函数名称?

没有办法在运行时返回函数或过程的名称?

我目前正在处理这样的错误:

Sub foo()
Const proc_name as string = "foo"
On Error GoTo ErrHandler

    ' do stuff

ExitSub:
    Exit Sub
ErrHandler:
    ErrModule.ShowMessageBox "ModuleName",proc_name
    Resume ExitSub
End Sub
Run Code Online (Sandbox Code Playgroud)

在我更新函数名称后,我最近经历了一个向我说谎的常量,但不是常量值.我想将过程的名称返回给我的错误处理程序.

我知道我必须与VBIDE.CodeModule对象进行交互才能找到它.我已经使用Microsoft Visual Basic for Applications Extensibility库进行了一些元编程,但是我在运行时没有取得任何成功.我没有以前的尝试,在我再次尝试这个尝试之前,我想知道它是否可以远程实现.

事情是行不通的

  1. 使用一些内置的VBA库来访问调用堆栈.它不存在.
  2. 当我进入并退出每个程序名时,通过从数组中推送和弹出程序名来实现我自己的调用堆栈.这仍然要求我将proc名称作为字符串传递给其他地方.
  3. vbWatchDog这样的第三方工具.这确实有效,但我不能在这个项目中使用第三方工具.

注意

vbWatchdog似乎是通过API调用直接访问内核内存来实现的.

error-handling vba

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

如何获取目录中具有ESY扩展名的所有文件的列表?

在VBA中,如何获取特定目录中具有特定扩展名的所有文件的列表?

我无法做到Application.FileSearch,因为我正在使用excel 2007

filesystems search file-extension vba excel-2007

13
推荐指数
1
解决办法
3万
查看次数

如果输入无效,是否可以抛出异常?

我有一个简单的ANLTR语法和随附的访问者.除非输入无效,否则一切都很好.如果输入无效,则吞下错误并且我的计算器输出错误.

我已经尝试实现一个错误监听器,而不是Recover使用词法分析器的方法,而且......好吧......今天还有其他几十件事情.有人可以告诉我如何简单地抛出错误而不是吞下坏的"令牌"吗?(我使用引号,因为它们根本不是令牌.我的语法中的字符未定义.)

有效输入:

1 + 2*3 - 4

输入无效:

1 + 2 + 3(4)

ArgumentException如果解析器/词法分析器遇到括号(或任何其他未定义的字符),我想抛出一个.目前,无效字符似乎只是消失在以太中,解析器就像没有错一样.

如果我使用grun命令在控制台中运行它,我会得到以下输出,因此它会在某个级别识别无效的标记.

第1:9行令牌识别错误:'('

第1:11行令牌识别错误:')'

这个结果解析树.

在此输入图像描述

BasicMath.g4

grammar BasicMath;

/*
 * Parser Rules
 */

compileUnit : expression+ EOF;

expression :
    expression MULTIPLY expression #Multiplication
    | expression DIVIDE expression #Division
    | expression ADD expression #Addition
    | expression SUBTRACT expression #Subtraction
    | NUMBER #Number
    ; 

/*
 * Lexer Rules
 */

NUMBER : INT; //Leave room to extend what kind of math we …
Run Code Online (Sandbox Code Playgroud)

c# exception antlr4

12
推荐指数
2
解决办法
1324
查看次数

如何使用Excel VBA宏循环行?

我是VBA的新手,但对PHP非常好.话虽这么说,我正在努力与VBA循环......

我有40行称为"SH1"的这张表:

SH1

     A     B     C     D     E
 1   2   One    1.0a   12
 2   7   Two    2.0b   34
 3  13   Three  3.0c   56
 4  14   Four   4.0d   78
..
40
Run Code Online (Sandbox Code Playgroud)

我需要遍历40行并检查A列中的值.如果A列中的值符合我的条件(见下文),则生成一些输出并将其放入另一张表中.

我的输出表是3列,称为"SH2":

SH2

     A     B     C     D     E
 1  1.0a   12    One
    2.0b   34    Two
 2  3.0c   56    Three
    4.0d   78    Four
..
15
Run Code Online (Sandbox Code Playgroud)

我决定什么去哪里的标准:

// First loop:
if a1 < 8, put c1 in SH2 a1, put d1 in SH2 b1, put b1 in SH2 c1
if a2 < …
Run Code Online (Sandbox Code Playgroud)

excel vba loops excel-vba

11
推荐指数
1
解决办法
7万
查看次数

SSIS脚本任务,用于检查文件是否存在于文件夹中

我想检查SSIS中特定文件夹中是否存在文件.我怎么能做到这一点?

c# ssis file file-exists

11
推荐指数
3
解决办法
6万
查看次数

MS Outlook宏将删除所选文本

任务是将删除线应用于所选文本区域中的当前字体.难点在于Outlook不支持动态记录宏 - 它希望手动编写代码.

例如,以下简单代码:

Selection.Font.Strikethrough = True
Run Code Online (Sandbox Code Playgroud)

适用于Word,但为Outlook提供错误:

Run-time error '424':
Object required
Run Code Online (Sandbox Code Playgroud)

outlook vba text-formatting outlook-vba

10
推荐指数
2
解决办法
6460
查看次数

运行其他模块的VBA模块

我正在使用Microsoft VBA进行编程.首先,我需要在宏的帮助下生成一个QueryTable(我已经得到了代码),然后在宏的帮助下,我需要应用使用QueryTable中数据的公式.我面临的问题是QueryTable只出现在其代码已经完成工作的Sub之后.这意味着我不能包含生成公式的代码,因为没有生成公式的数据.

现在的想法是编写一个运行其他模块的模块:

Sub moduleController()
    Run "Module1"
    Run "Module2"
End Sub
Run Code Online (Sandbox Code Playgroud)

这给出了错误:

运行时错误1004 - 无法运行宏"macroname".宏可能在此工作簿中不可用,或者可能禁用所有宏.

可能是什么解决方案?也许我的QueryTable加载问题有另一种解决方案?

excel vba call excel-vba

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