标签: vba

如何在vba中的字符串中加双引号?

我想通过包含双引号的vba在单元格中插入if语句.

这是我的代码:

Worksheets("Sheet1").Range("A1").Value = "=IF(Sheet1!B1=0,"",Sheet1!B1)"
Run Code Online (Sandbox Code Playgroud)

由于双引号,我在插入字符串时遇到问题.我该如何处理双引号?

excel vba double-quotes

103
推荐指数
4
解决办法
40万
查看次数

测试或检查是否存在纸张

Dim wkbkdestination As Workbook
Dim destsheet As Worksheet

For Each ThisWorkSheet In wkbkorigin.Worksheets 
    'this throws subscript out of range if there is not a sheet in the destination 
    'workbook that has the same name as the current sheet in the origin workbook.
    Set destsheet = wkbkdestination.Worksheets(ThisWorkSheet.Name) 
Next
Run Code Online (Sandbox Code Playgroud)

基本上,我遍历原始工作簿中的所有工作表,然后destsheet在目标工作簿中将其设置为与原始工作簿中当前迭代的工作表相同的工作表.

如何测试该表是否存在?就像是:

If wkbkdestination.Worksheets(ThisWorkSheet.Name) Then 
Run Code Online (Sandbox Code Playgroud)

excel scripting vba

102
推荐指数
9
解决办法
43万
查看次数

打破一段时间...... Wend循环

我正在使用VBA的While ... Wend循环.

Dim count as Integer

While True
    count=count+1

    If count = 10 Then
        ''What should be the statement to break the While...Wend loop? 
        ''Break or Exit While not working
    EndIf
Wend
Run Code Online (Sandbox Code Playgroud)

我不想使用像`while count <= 10 ...这样的条件

excel vba while-loop

100
推荐指数
1
解决办法
35万
查看次数

如何暂停特定的时间?(Excel中/ VBA)

我有一个Excel工作表,其中包含以下宏.我想每秒循环一次,但如果我能找到这样做的功能,那就很危险.不可能吗?

Sub Macro1()
'
' Macro1 Macro
'
Do
    Calculate
    'Here I want to wait for one second

Loop
End Sub
Run Code Online (Sandbox Code Playgroud)

excel vba

99
推荐指数
9
解决办法
69万
查看次数

如何禁止更新链接警告?

我正在尝试编写一个打开许多Excel文件的脚本.我一直得到提示:

This workbook contains links to other data sources.
Run Code Online (Sandbox Code Playgroud)

我希望不要出现此消息,以便我的脚本可以自动浏览所有工作簿,而无需Don't Update为每个工作簿单击.目前我正在使用以下内容:

function getWorkbook(bkPath as string) as workbook

Application.EnableEvents=False
Application.DisplayAlerts=False
getWorkbook=Workbooks.Open(bkPath,updatelinks:=0,readonly:=false)

end function
Run Code Online (Sandbox Code Playgroud)

但是,该消息仍然出现.我怎么能抑制它?

编辑:似乎这个消息出现在链接断开的工作簿中; 我没有看到这条This workbook contains one or more links that cannot be updated消息因为我设置DisplayAlerts为假.工作簿链接到Windows服务器上的文件夹中的等效文件,因此当从该文件夹中删除匹配文件(这是我们业务流程的一部分)时,链接会中断.链接断开时是否可以禁止警告?

另外,我正在使用Excel 2010.

excel vba

99
推荐指数
6
解决办法
28万
查看次数

VBA - 如何有条件地跳过for循环迭代

我有一个for循环数组.我想要做的是测试循环中的某个条件,如果为true则跳到下一个迭代:

For i = LBound(Schedule, 1) To UBound(Schedule, 1)
    If (Schedule(i, 1) < ReferenceDate) Then
        PrevCouponIndex = i
        Continue   '*** THIS LINE DOESN'T COMPILE, nor does "Next"
    End If
    DF = Application.Run("SomeFunction"....)
    PV = PV + (DF * Coupon / CouponFrequency)
Next
Run Code Online (Sandbox Code Playgroud)

我知道我能做到:

 If (Schedule(i, 1) < ReferenceDate) Then Continue For
Run Code Online (Sandbox Code Playgroud)

但我希望能够在PrevCouponIndex变量中记录i的最后一个值.

有任何想法吗?

谢谢

conditional vba loops

97
推荐指数
5
解决办法
31万
查看次数

如何使用VBA添加自定义功能区选项卡?

我正在寻找一种在Excel功能区中添加自定义选项卡的方法,该选项卡带有几个按钮.我偶然发现了一些通过谷歌解决它的资源,但看起来都很狡猾,而且非常复杂.

什么是快速简单的方法呢?当我的VBA加载到Excel时,我想要加载新标签.

更新:我从这里尝试了这个例子,但在最后一条指令上得到了"需要对象"错误:

Public Sub AddHighlightRibbon()
Dim ribbonXml As String

ribbonXml = "<mso:customUI xmlns:mso=""http://schemas.microsoft.com/office/2009/07/customui"">"
ribbonXml = ribbonXml + "  <mso:ribbon>"
ribbonXml = ribbonXml + "    <mso:qat/>"
ribbonXml = ribbonXml + "    <mso:tabs>"
ribbonXml = ribbonXml + "      <mso:tab id=""highlightTab"" label=""Highlight"" insertBeforeQ=""mso:TabFormat"">"
ribbonXml = ribbonXml + "        <mso:group id=""testGroup"" label=""Test"" autoScale=""true"">"
ribbonXml = ribbonXml + "          <mso:button id=""highlightManualTasks"" label=""Toggle Manual Task Color"" "
ribbonXml = ribbonXml + "imageMso=""DiagramTargetInsertClassic"" onAction=""ToggleManualTasksColor""/>"
ribbonXml = ribbonXml + "        </mso:group>"
ribbonXml = ribbonXml …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-2007 ribbonx

94
推荐指数
6
解决办法
20万
查看次数

你如何测试VBA代码的运行时间?

在VBA中是否有代码可以包装一个函数,让我知道它运行的时间,以便我可以比较函数的不同运行时间?

testing optimization performance vba profiling

91
推荐指数
5
解决办法
13万
查看次数

Excel VBA中"!="的等价物是什么?

问题是!=在excel vba中不起作用.

我希望能够使用

If strTest != "" Then 代替 If strTest = "" Then

除此之外还有另一种做法!=吗?

我模仿的功能!=

Sub test()

Dim intTest As Integer
Dim strTest As String

intTest = 5

strTest = CStr(intTest) ' convert

Range("A" + strTest) = "5"



    For i = 1 To 10
        Cells(i, 1) = i

        If strTest = "" Then
            Cells(i, 1) = i
        End If

    Next i


End Sub
Run Code Online (Sandbox Code Playgroud)

syntax excel inequality vba function

91
推荐指数
3
解决办法
39万
查看次数

Excel 2010中的"表单控件"和"ActiveX控件"有什么区别?

使用Microsoft Excel 2010,我注意到可以插入到文档中的两种控件:表单控件ActiveX控件.

在此输入图像描述

他们之间有什么区别?

excel vba activex excel-2010 form-control

91
推荐指数
3
解决办法
21万
查看次数