我有困难试图了解如何基本ONerror handling程序工作在VBA的Excel(如果有的话)。 在下面的例子中,我将6/0分为ON ERROR,即忽略错误触发行(y = 6/0)。 Sub UsingResumeNext() Dim x As Long, y As Long On Error Resume Next x = 6 y = 6 / 0 x = 7 End Sub 但是,当我运行代码popup警报窗口出现说'运行时错误11,除以零',见附件 )。 我很困惑..不应该有错误有效地“沉默”警报窗口显示出来吗? 它看起来像error handling程序不起作用。 任何人有build议我做错了什么?
嗨,我是新来的vba,我可能不真正undestand很多,但我不能解释为什么我得到一个“运行时错误9:下标超出范围”的错误,当代码应该改变单元格的背景颜色到另一个 Sub CompareWorksheets(ws1 As Worksheet, ws2 As Worksheet) Dim r As Long, c As Integer Dim lr1 As Long, lr2 As Long, lc1 As Integer, lc2 As Integer Dim maxR As Long, maxC As Integer, cf1 As String, cf2 As String Dim DiffCount As Long Application.ScreenUpdating = False With ws1.UsedRange lr1 = .Rows.Count lc1 = […]
我想这样做,当我的代码中的特定单元格之一被更改,然后它会显示一条消息,但我收到以下错误消息“运行时错误438对象不支持此属性或方法”。 不确定这是什么意思。 有人可以帮助我理解。 这里是代码: Private Sub Worksheet_Change(ByVal Target As Range) If Target.Adress = "F48,I48,L48,F50,I50,L50,I52,L52,N52" Then MsgBox "You are about to change an AP-42 Emision Factor" End If End Sub
我不认为答案太复杂了,我只能错过一些基本的东西。 为了给出上下文,代码和这个macros是由一个在我开始时不再在这里工作的员工编写的。 我每个月都用了很多次,今天当我试图运行VBA脚本的时候,它突然给了我一个错误。 它给了我标准的Run Time Error 91 (Object variable or block variable not set) 。 代码具体是: Dim DataBook As Workbook Set DataBook = Workbooks.Open(Import_File_Path) DataBook.Worksheets("Sheet1").Name = "Database" Application.DisplayAlerts = False Tool.Worksheets("Database").Delete <—–highlighted error line Application.DisplayAlerts = True DataBook.Worksheets("Database").Move before:=Tool.Worksheets(1) VBA脚本试图从我已经生成的Excel工作表中获取原始数据,然后导入文件(从而在Set行中input该部分),并执行一些计算以从中创build更多的数据和统计信息。 然而,我感觉的问题在于我在这里发布的部分和对象和variables。 突出显示的错误行是“ Tool.Worksheets("Database").Delete 。 当我添加一个监视该行时,该值表明Object Variable or With block variable not set 。 这使我相信有些东西没有被设置为一个对象,但是我又是一个VBA新手,我对我的任何直觉都没有信心。 对于它的价值,我应该提到,我添加了另一个Watch行,说DataBook.Worksheets("Sheet1").Name […]
我需要这个macros的帮助。 每次运行它,我都会得到下面的错误。 我认为这是一个简单的macros,我可以让我的团队中的任何人使用这个macros来缩短每次运行报表时手动创build此数据透视表的时间。 但是,它不工作。 请参阅下面的错误,并build议。 我粗暴和斜体的错误。 Sub LEDOTTR() ' ' LEDOTTR Macro ' ' Range("A87").Select Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select ***ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "Sheet1!R87C1:R8214C25", Version:=xlPivotTableVersion14).CreatePivotTable _ TableDestination:="LED OTTR!R1C1", TableName:="PivotTable6", _ DefaultVersion:=xlPivotTableVersion14*** Sheets("LED OTTR").Select Cells(1, 1).Select With ActiveSheet.PivotTables("PivotTable6").PivotFields("LED") .Orientation = xlPageField .Position = 1 End With With ActiveSheet.PivotTables("PivotTable6").PivotFields("Hierarchy name") .Orientation = xlRowField .Position = 1 End With ActiveSheet.PivotTables("PivotTable6").PivotFields("LED").CurrentPage = […]
我写了一些代码,允许我通过从大型数据电子表格中提取数据并用信息填充空白发票来创build发票。 我需要通过帐户编号,环境和产品名称对发票进行sorting。 使用types和相关成本填满了一个表格。 我有一个工作程序来为每个环境创build发票,但是现在我需要根据帐户ID进行分离。 代码我已经很好的exLoop的第一次迭代。 我收到第一个帐号ID的正确发票。 当它移动到ExLoop的第二次迭代时,它会给我提供运行时错误91:对象variables或未设置块variables。 我尝试了这么多的方法,我不明白为什么它是第一次,而不是第二次。 这里是错误行的代码: Sub CreateInvoices() Dim bookName, sheetName, accountId, accountName As String Dim usageType, totalCost, productCode, productName, environment As String Dim myDate, path, myFileName As String Dim invoiceRow, tempRow As Long Dim mainLoop, outerLoop, exLoop, row As Long Dim firstAccountName, lastAccountName, firstEnviroName, lastEnviroName, firstProductName, lastProductName As Long Dim accountRng, […]
有很多关于这个错误的线程,但是无论我尝试什么,我都无法得到这个工作。 大多数人说,当你尝试在不活动的表单上调用一个方法时,就会发生这种情况,但是你不应该这样做。 错误是在第28行。谢谢。 Private Sub CommandButton1_Click() Dim x As Integer Dim boisePaste As Integer Dim jrgPaste As Integer Dim master As Integer Dim lastRow As Integer Dim bookCount As Integer bookCount = Application.Workbooks.Count For x = 1 To bookCount If Left(Application.Workbooks(x).Name, 14) = "ITEM_INVENTORY" Then boisePaste = x ElseIf Left(Application.Workbooks(x).Name, 6) = "report" Then jrgPaste […]
我得到了一个运行时错误“13”(types不匹配)下面的代码,我不明白为什么。 在添加“和”和第二个条件之前,它正在工作。 第一个(a,43)值是读作“#N / A”的错误。 有任何想法吗? If IsNumeric(Sheets("Reuters").Cells(a, 43).Value) = True And _ Abs(Sheets("Reuters").Cells(a, 43).Value) >= 0.0799 Then pfl = "P" ct = ct + 1 Else pfl = Empty End If
我在Excel中使用VBA,我正在使用一个函数来查找第一个空行,然后添加一些值,之后,我需要将单元格的地址传递给另一个函数,但使用下面的代码,我得到一个运行时错误。 firstEmptyRow是一个返回范围的函数,例如$A$280 。 Dim addCell as Range 'Find first empty row in the table With firstEmptyRow 'Enter Values .Value = taskID .Offset(0, 1).Value = jobID .Offset(0, 2).Value = jobName .Offset(0, 6).Value = taskTypeID .Offset(0, 8).Value = taskName .Offset(0, 9).Value = desc .Offset(0, 11).Value = estMins .Offset(0, 13).Value = "No" set addCell = .Address //Gives a […]
所以,我试图创build子过程,其中一个参数是列名称。 列名然后转换为列号。 Dim ColNum As Integer: ColNum = Range(ColumnNM & 1).Column 但是当我尝试使用范围内的列号,与单元格属性我得到91运行时错误。 这里的大部分解决scheme都是为了不正确地设置范围。 运行时错误91 这里给我这个错误: Dim rngTA As Range: Set rngTA = wsTA.Range(Cells(24, ColNum)) 和这(试验,不知道这是否正确的方式来设置范围与string地址) Dim addr As String: addr = Cells(24, ColNum).Address(RowAbsolute:=False, ColumnAbsolute:=False) Dim rngTA As Range: Set rngTA = wsTA.Range(addr) 我卡在那里。 谢谢。