我编写代码并且(尽管这很难相信很多),偶尔会搞砸,创建一个无限循环.使用我的新奇特Excel,Ctrl + Break不再有效.Esc键等也没有.我看过整个网络,看起来微软有一个错误,并不关心修复它.
有没有人知道如何重新向VBA引入Ctrl + Break功能,所以如果将来发生这种情况我不会失去工作/强制关闭?谢谢!
为什么我不能通过这些方式定义工作簿?(我有一个范围位,只是为了快速测试.)我该如何解决?
这会产生一个 "Compile Error: Type Mismatch"
Sub Setwbk()
Dim wbk As Workbook
Set wbk = "F:\Quarterly Reports\2012 Reports\New Reports\ _
Master Benchmark Data Sheet.xlsx"
Range("A2") = wbk.Name
End Sub
Run Code Online (Sandbox Code Playgroud)
这创造了一个 "Runtime Error '91': Object variable or with block variable not set"
Sub Setwbk()
Dim wbk As Workbook
wbk = "F:\Quarterly Reports\2012 Reports\New Reports\ _
Master Benchmark Data Sheet.xlsx"
Range("A2") = wbk.Name
End Sub
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?我已经在VBA打了一个月,变得非常复杂,但这让我很难过.我错过了一些基本的东西.
我只想定义一个工作簿,所以我不必全部输入!
我已经为此烦恼了一天,在高处和低处搜寻,并且可能试图变得太可爱了,因此完全被卡住了。
我正在尝试运行一个简单的如果
如果一个单元格包含“%”,我希望它做一件事,如果不是,则要做另一件事。由于某些原因,我不明白我无法解决它。我显然已经从其他地方吸取了一些想法,但仍然无法使它起作用。
复杂的因素-我不想在整个列(仅一个表)上运行此函数,因此将其嵌入到使用很多或相对ActiveCell的较大子集中。我永远不知道我会在A列中的哪个位置遇到“%变化”,因此范围始终必须是可变的。我希望VBA / VBE在包含“%”的单元格上执行其他操作。所以
这是原始数据的样子
Initial Value (6/30/06)
Value (12/31/06)
Net Additions (9/30/07)
Withdrawal (12/07)
Value (12/31/07)
Withdrawal (2008)
Value (12/31/08)
Addition (8/26/09)
Value (12/31/09)
Value (12/31/10)
Value (12/30/11)
Value (3/31/12)
% Change 1st Quarter
% Change Since Inception
Run Code Online (Sandbox Code Playgroud)
但是,当我运行以下代码时,它陷入了一个糟糕的循环,在该循环中,它应该退出子程序的“ If Then”(而不是子程序的“ Else”部分)。
Sub IfTest()
'This should split the information in a table up into cells
Dim Splitter() As String
Dim LenValue As Integer 'Gives the number of characters in date string
Dim LeftValue As Integer 'One less …Run Code Online (Sandbox Code Playgroud) 我正在尝试做一些相对简单的复制并从Excel 2007粘贴到Word 2007.我已经浏览了这个网站和其他人,并继续挂在同一件事 - 第三行,下面的代码一直给我"用户类型注释定义"错误消息.我真的很困惑,因为我刚从另一个解决方案解除了这个问题(并且我尝试解除其他解决方案时遇到了类似的问题).有人可以告诉我导致错误的原因,为什么?
Sub ControlWord()
' **** The line below gives me the error ****
Dim appWD As Word.Application
' Create a new instance of Word & make it visible
Set appWD = CreateObject("Word.Application.12")
appWD.Visible = True
'Find the last row with data in the spreadsheet
FinalRow = Range("A9999").End(xlUp).Row
For i = 1 To FinalRow
' Copy the current row
Worksheets("Sheet1").Rows(i).Copy
' Tell Word to create a new document
appWD.Documents.Add
' Tell Word to paste the contents of …Run Code Online (Sandbox Code Playgroud)