Tag: vba

我如何使用一个数组的每个循环?

我有一个string数组: Dim sArray(4) as String 我正在经历数组中的每个string: for each element in sarray do_something(element) next element do_something以一个string作为参数 我得到一个错误作为一个string传递元素: ByRef参数不匹配 我应该将元素转换为一个string或什么的?

在VBA中尝试创build无模式对话框时使用CreateDialog

我想在VBA 7.0中创build一个无模式的popup对话框。 到目前为止,最有希望的路线似乎是CreateDialog 。 首先,我尝试CreateDialogW并收到Entry point not found for CreateDialogW in DLL 。 打开DLL后,我validation了这个function没有列出。 上面链接的MSDN引用显示User32作为此函数的DLL,并列出函数名称CreateDialogW和CreateDialogA (分别为Unicode / ansi),但它们不在我的计算机(Win 7专业版,64位)上的此DLL中列出。 因此,查看DLL中的函数列表,我看到了CreateDialogParam和CreateDialogIndirectParam函数 (每个函数的 Ansi和Unicode版本)。 我一直在试图遵循MSDN,并将C例子转换为VB,但是我错过了一些地方,我有点卡住,因为我不知道我做错了什么。 代码编译和运行没有错误,但没有发生在API调用 – 它执行但没有任何反应。 如果有人能给我一些正确的方向,我将不胜感激。 我目前的解决办法很糟糕,我真的想把这个项目button。 Option Explicit 'Reference conversion of C to VB type declarations here 'http://msdn.microsoft.com/en-us/library/aa261773(v=vs.60).aspx 'Declare function to Win API CreateDialog function 'http://msdn.microsoft.com/en-us/library/ms645434(v=vs.85).aspx Private Declare PtrSafe Function CreateDialog Lib "User32.dll" […]

为什么在有collections的情况下在VBA中使用数组?

许多人在Excel / VBA中广泛使用数组来存储数据列表。 但是,在我看来,有更多的收集对象更方便(主要是:不需要重新定义列表的长度)。 所以,我真诚地问自己,如果我错过了什么? 为什么其他人仍然使用数组来存储数据列表? 这仅仅是过去的宿醉吗?

在VBAmacros中使用符号#(散列)

在Excel VBA中使用#符号的含义是什么? 它是这样使用的: a = b /100# 我不明白100后的意义#

如何根据列值在xy散点图中着色点?

考虑下面的工作表: ABCD 1 COMPANY XVALUE YVALUE GROUP 2 Apple 45 35 red 3 Xerox 45 38 red 4 KMart 63 50 orange 5 Exxon 53 59 green 我在Excel中使用了散点图函数来创build下面的图表: 但是,图表中的每个点都有一个附加属性: GROUP 。 有四个组: red , orange , black和green 。 我想相应地为每个点着色,以便我可以看到一个模式(例如,组的green几乎总是在图表的左侧)。 因为我的列表是500行,我不能手动执行此操作。 我怎样才能自动做到这一点?

何时使用VBA中的类?

什么时候适合在Visual Basic for Applications(VBA)中使用类? 我假设加速开发和减less引入错误是大多数支持OOP的语言的一个共同的好处。 但是用VBA,有没有特定的标准?

保存用VBA编码的文本文件UTF-8

我怎样才能把UTF-8编码的string写入vba的文本文件中呢 Dim fnum As Integer fnum = FreeFile Open "myfile.txt" For Output As fnum Print #fnum, "special characters: äöüß" 'latin-1 or something by default Close fnum 应用程序级别是否有一些设置?

VBA检查variables是否为空

我有一个对象,在其中我想检查一些属性是否设置为false,如: If (not objresult.EOF) Then 'Some code End if 但不知何故,有时objresult.EOF是Empty ,我怎么检查它? IsEmpty函数仅适用于Excel单元格 objresult.EOF Is Nothing – 返回Empty objresult.EOF <> null – 返回Empty !

继续For循环

我有以下代码 For x = LBound(arr) To UBound(arr) sname = arr(x) If instr(sname, "Configuration item") Then '**(here i want to go to next x in loop and not complete the code below)** '// other code to copy past and do various stuff Next x 所以我想我可以简单地有语句Then Next x ,但是这给了一个“不适用于声明声明”的错误。 那么,我可以把什么后, If instr(sname, "Configuration item") Then使其继续为X的下一个值?

如何漂亮打印VBA代码?

如何将VBA代码复制到Word文档中并保留VBA编辑器颜色scheme?