Tag: vba

如何禁止更新链接警告?

我正在尝试编写一个脚本来打开许多Excel文件。 我不断收到提示: This workbook contains links to other data sources. 我想保持这个消息不会出现,这样我的脚本就可以自动遍历所有的工作簿,而不必单击每个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 不过,这个消息还在出现。 我怎样才能压制它? 编辑:看来,这个消息正在出现工作簿已经断开链接; 我没有看到This workbook contains one or more links that cannot be updated消息的This workbook contains one or more links that cannot be updated因为我将DisplayAlerts设置为false。 工作簿链接到我们的Windows服务器上的文件夹中的等效文件,所以当从该文件夹中删除匹配的文件(这是我们业务stream程的一部分)时,链接将中断。 当链接被破坏时,可以抑制警告吗? 另外,我正在使用Excel 2010。

为什么单元格(1,1)= 500 * 100会导致溢出,但50000 * 100不会?

那么,我刚刚创build了一个简单的子,它给出了溢出的错误。 不过,我看不出代码有什么问题,而且50000 * 100远大于500 * 100,这真的很奇怪。 sub add() 'This will cause an overflow error cells(1,1) = 500 * 100 'But this won't cells(2,2) = 50000 * 100 end sub

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

我有一个数组循环。 我想要做的是在循环中testing一个特定的条件,如果为真则跳到下一个迭代: 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 我知道我可以这样做: If (Schedule(i, 1) < ReferenceDate) Then Continue For 但我希望能够logging在PrevCouponIndexvariables我的最后一个值。 有任何想法吗? 谢谢

我怎样才能刷新我的Excel工作簿中的所有数据透视表?

我有一个工作簿20个不同的数据透视表。 有没有简单的方法来find所有的透视表,并在VBA中刷新它们?

在单元格更改时自动执行Excelmacros

每当特定单元格中的值发生更改时,如何自动执行Excelmacros? 现在,我的工作代码是: Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("H5")) Is Nothing Then Macro End Sub 其中"H5"是被监视的特定单元, Macro是Macro的名称。 有没有更好的办法?

打破了一阵子… Wend循环

我正在使用VBA的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 我不想使用条件,如“虽然计数<= 10 … Wend

你如何testingVBA代码的运行时间?

有没有代码在VBA我可以包装一个function,这将让我知道所花费的时间,以便我可以比较不同的运行时间的function?

在VBA中声明和初始化string数组

这应该根据另一个堆栈溢出post,但不是: Dim arrWsNames As String() = {"Value1", "Value2"} 谁能让我知道什么是错的?

在编辑Microsoft Office VBA时,如何禁用popup的“编译错误”消息?

在编辑Microsoft Office VBAmacros或函数时,通常会将光标从尚未完成的行中移开。 例如,要将要粘贴的内容复制到该行中。 但是,如果该部分语句不是语法上有效的,则VBA编辑器会popup一个必须解散的“编译错误”消息来中断您的工作。 有什么办法来禁用消息框? 我觉得很刺激 (这发生在Excel Visual Basic for Applications,Outlook VBA,Word VBA等等)

我如何在VBA中声明一个全局variables?

我写了下面的代码: Function find_results_idle() Public iRaw As Integer Public iColumn As Integer iRaw = 1 iColumn = 1 我收到错误消息: “Sub或Function”中的无效属性 你知道我做错了吗? 我试图使用Global而不是Public ,但也得到了同样的问题。 我试图把这个函数本身声明为“Public”,但这也没有什么好处。 我需要做什么来创build全局variables?