VBA运行时错误424

时间:2015-06-11 18:41:32

标签: excel vba excel-vba

我对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

2 个答案:

答案 0 :(得分:3)

除了ActiveWindow.Close的问题之外,我还没有看到您为工作表提供任何值的位置。

我会删除ActiveWindow.Close(无论如何应该做什么?)并用ActiveSheet.Range替换Worksheet.Range的出现次数

答案 1 :(得分:1)

您已使用

关闭了窗口
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