我想知道是否有任何语言可以编译成VBA,比如我们有coffeescript for js,less for css……
如果没有,是不是有什么东西阻碍了我们实现这一目标?这是个坏主意吗?
我猜这会帮助那些习惯于使用更多现代语言的人变得更有效率。
需要什么才能做到这一点呢?我们是否可以重用coffeescript语法和解析器,而直接使用生成Javascript和生成VBA的步骤呢?VBA的一个子集就可以了。
我正在尝试从VBA切换到新的Excel Javascript API,但我找不到类似于VBA的集合和方法来遍历所有打开的工作簿。 通常,在VBA中,我可以编写如下代码: for each i in workbooks
next i 使用workbooks object或仅通过名称或索引workbook(index/name of workbook)调用打开的工作簿 所以,在JS office中,我只在this article和this article has no mentions at all中找到了类似于VBA函数'workbook.open‘JS -document.getEl
我刚开始使用VBA Selenium。我用密码/用户名通过Chrome登录到这个网站。
我想:
1-我必须在登录后更改链接。
当连接更改时,Chrome会记住我的密码和用户名(它不记得连接和用户名/密码,所以当我更新它时,它会返回主屏幕并询问用户名/密码)(<
3-从连接接收数据。
救命啊!
Private Keys As New Selenium.Keys
Private driver As New Selenium.ChromeDriver
Sub test100()
Const JS_NEW_WINDOW = "window.open(arguments[0], na
是否可以在Outlook的VBA宏编程中定义静态集合?
Sub mySub()
Static myCollection As VBA.Collection
Set myCollection = New VBA.Collection
myCollection.Add "entry1"
myCollection.Add "entry2"
myCollection.Add "entry3"
End Sub
这样,每次触发宏myCollection ()时,就不必重新定义mySu
下面的代码给出了错误9“下标超出范围”。我的意思是声明一个动态数组,这样当我向它添加元素时,维度就会发生变化。我是否必须在数组上创建一个"spot“,然后才能像在JS中那样在数组中存储内容?
Sub test_array()
Dim test() As Integer
Dim i As Integer
For i = 0 To 3
test(i) = 3 + i
Next i
End Sub
在PowerPoint VBA中,我可以创建一个UserForm (MSForms)并调用:
Dim frm As New myUserForm
frm.Show
结果是在PowerPoint上显示了一个窗口。
我是否可以从JavaScript API for Office执行相同的操作
JavaScript API for Office*是否提供完整的Microsoft对象库
新的外接程序并不是为了取代旧的VBA外接程序而设计的,但是将VBA移植到JS似乎是合乎逻辑的,我的外接程序可以利用Office 365的一些新的在线服务。
我使用VBA与IE中的一个网站进行交互。
作为其中的一部分,我需要在那里单击一个按钮,但是一个简单的.Click不能工作,因为我需要触发这个按钮后面的JS onclick事件。
这里有人能告诉我如何通过模拟单击和触发事件或者直接调用JS事件来实现这一点吗?
这应该发生在下面的VBA代码之后。
我的VBA代码:
Dim IE As Object
Dim MyURL As String
Dim varResults As New DataObject
varResults.SetText TxtSql.Text
varResults.PutInClipboard
Unload FrmResult
我有一个带密码保护(防止未经授权访问宏)的VBA宏,它可以按预期运行。用户单击按钮,宏将运行。内容或多或少如下:
Sub sample()
ActiveSheet.Unprotect Password:="xyz"
...VBA code....etc
ActiveSheet.Protect Password:="xyz", DrawingObjects:=True, Contents:=True, cenarios:=True
End Sub
现在我已经添加了一个函数,因此代码如下所示:
Function
.....
我知道题目还不清楚,所以希望我能澄清:
考虑以下VBA脚本(由M.Paige编写):
Sub rem_space()
Set myRange = ActiveDocument.Content
With myRange.Find
.Text = " :"
.Replacement.Text = ":"
.Execute Replace:=wdReplaceAll, Forward:=True, _
Wrap:=wdFindContinue
End With
End Su
在一个工作表中使用一个VBA CommandButton,可以在另一个工作表中调用另一个vba模块。此VBA连接在工作表内,而不是与工作簿连接。当我在第一个工作表中运行CommandButton时,会得到以下错误。
Public Sub CommandButton3_Click()
PriceChange.FilterColorToRed
End Sub
在csharp或vb.net中,我们使用using语句的原因是我们知道的:我们可以打开数据库并自动关闭它,而无需显式地写入它。我想在VBA上做些比较。
怎么做?
所有VB.NET语句/关键字/在VBA中都可用吗?
如何判断给定的语句是否在VBA中已知?是否有所有VBA语句/关键字/操作符的库(字库)?
c#
using(var db=new MyDbContext()){
//do work here
}
vb.net
Using s = New MyDbContext()
'--..do work here
End Usin
保存文档后,我需要在Visio中执行函数。
VBA for Visio具有以下保存后执行的函数
Private Sub Document_DocumentSaved(ByVal doc As IVDocument)
'Function Code
End Sub
但是,此函数不会在保存完成后执行,而是在保存之前执行。我可以通过Visio文件和Microsoft Office上载中心的日期来验证这一点,在VBA代码完成执行之前,上载中心不会启动。(有问题的VBA代码用于与SharePoint相关的内容,在执行操作之前保存文件是很重要的。)
一种可能的解决方法是Application
我使用以下方法从VBA调用python脚本:
Sub python_call()
Application.COMAddIns("DataNitro.DataNitro").Object.RunScript ("test.py")
'do some other stuff
End Sub
test.py需要一段时间才能运行,所以我希望VBA在运行剩下的代码之前等待。除了Application.Wait之外,还有别的办法吗?
我在Access 2007 VBA中,试图从函数中返回一个#ERROR值,如下面的代码所示。但我刚刚发现,VBA.CVErr(表达式)接受的最大数字是2^15-1,也就是整数变型;时间不长。
这似乎难以理解,因为VBA常量vbObjectError是长的。其他错误函数与longs一起工作;例如:VBA.Error(vbObjectError)工作得很好。
鉴于这个问题,有什么建议正确地使用vbObjectError从用户定义的函数返回用户定义的错误作为错误对象..?
Public Sub TesUDE()
Dim v As Variant
v = UDE()
Debug
在VBA中,我可以使用End语句终止宏的执行,如下所示。
Sub DoSomeThing()
Dim test As Boolean
test = false
test = function()
If test Then
End 'Macro execution is terminated
End if
End Sub
我希望我的C# DLL包含一个具有相同效果的方法?我在想一件事,大致如下。
public void DoSomething_CSharp()
{
var test = false;
test = F
我想在word中添加一个带有Word-JS附加组件的脚注。不幸的是,我发现office.js应用编程接口不支持此功能。 我找到了使用VBA here执行此操作的方法,但我没有找到从office.js运行VBA代码的选项。 我找到的最后一件事是一些VB和C#代码here,但我不知道如何运行它。 Private Sub DocumentFootnotes()
Dim text As Object = "Sample footnote text."
Me.Paragraphs(1).Range.InsertParagraphAfter()
Me.Paragr
使用VBA (2010),我可以调用打印对话框和打印预览,但我不知道如何调用文件->打印菜单。
Application.Dialogs(xlDialogPrint).Show ' Client - "not in keeping with the Excel 2010 experience"
ActiveSheet.PrintPreview (False) ' Very slow to display
是否可以使用VBA显示此菜单选项?
我正在使用Microsoft Excel 2007的VBA。我的代码如下:
Sub First()
End Sub
Function Two() As Boolean
End Function
Sub Sun()
If (Two()) Then
First()
End If
End Sub
这段代码有什么问题?为什么它不能编译?
我不能在IF语句中使用subs吗?它是VBA的吗?如何或应该如何解决此问题?