【问题标题】:VBA run time error 424VBA 运行时错误 424
【发布时间】:2015-06-12 02:54:15
【问题描述】:

我对 VBA 很陌生。 runtime error 424 在我尝试设置 value1 = 时启动。似乎无法弄清楚这一点。我正在处理导入的数据。负数被导入,CR 后缀转到相邻列。我需要 excel 来识别 CR 并将其旁边的单元格设为负数,或者我现在尝试的是在第三列中返回负值。数据跳过行,所以我只需要翻译真正的负数,其他所有内容都应该返回空白。

我尝试使用 if 方程进行条件格式设置,效果很好,但是当转换为 VBA 时,相关单元格引用和公式很混乱,并且在格式更改的情况下用户不会随意使用,

包含代码的问题部分。

提前感谢任何可以提供帮助的人!

    Application.ScreenUpdating = False

Sheet2.Range("A1:H9999").ClearContents

Dim vFileName
Dim MyWorkbook As Workbook
Dim NameColumn As Range
Dim value1 As Range
Dim value2 As Range
Dim value3 As Integer


vFileName = Application.GetOpenFilename("Text Files (*.txt),*.txt")



MyWorkbook.Activate
Application.DisplayAlerts = False
ActiveWindow.Close
Set value1 = Worksheet.Range("K113:K249")
Set value2 = Worksheet.Range("H113:H249")
Set NameColumn = Worksheet.Range("I113:I249")
If NameColumn.Value = "CR" Then
    value1.Value = value1.Value * -1
    ElseIf value2.Value = 0 Or "" Then
    value1.Value = ""
    Else: value1.Value = value1.Value
End If

【问题讨论】:

  • 请注释掉Application.ScreenUpdating = False。添加到您的工作代码中是一件很棒的事情 - 尝试调试无法运行的代码时会变得很困难。
  • ElseIf value2.Value = 0 Or "" Then 看起来不对; VBA 会期待像 ElseIf value2.Value = 0 Or value2.Value = "" Then... 这样的东西,但不知道这是否相关

标签: vba excel


【解决方案1】:

除了 ActiveWindow.Close 的问题,我看不出你在哪里给 Worksheet 赋予了任何价值。

我会删除 ActiveWindow.Close(那应该怎么做?)并将 Worksheet.Range 的出现替换为 ActiveSheet.Range

【讨论】:

    【解决方案2】:

    你已经关闭了窗口

    ActiveWindow.Close
    

    然后,您尝试将范围变量 set 设置为现已关闭的工作簿中的某个内容。

    删除该行和/或将其移至代码末尾。

    正如LittleBobbyTables 指出的那样:

    ElseIf value2.Value = 0 Or "" Then
    

    无效。使用这个:

    ElseIf value2.Value = 0 Or value2.Value = "" Then
    

    还有

    Else: value1.Value = value1.Value
    

    去掉Else后面的冒号

    Else value1.Value = value1.Value
    

    【讨论】:

    • activewindow.close 正在关闭我之前打开的窗口。
    • 您确定另一个窗口是活动的,而不是这个?有了Application.ScreenUpdating = False,你可能不在你认为的位置。 How to avoid using Select in Excel VBA macros 避免这种混淆。另外,我认为John 解决了另一个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多