我最终知道这件事。我很确定我的逻辑是正确的,我已经正确定义了所有内容并遵循语法。此外,这段代码没有出现错误。请看一下,让我知道它为什么不起作用。我刚开始学习这个,我真的在寻求帮助。
Sub AddMN()
'declare the variables
Dim MNFX As String
Dim MNDO As String
Dim FXDO As String
Dim OPT As String
Dim i As Integer
Dim lastEmpty As Integer
FXDO = Sheet3.Range("F3")
OPT = Sheet3.Range("H3")
Sheet6.Activate
For i = 2 To 1000
If IsEmpty(Cells(i, 1).Value) Then
lastEmpty = i
Exit For
End If
Next i
If FXDO = "FIXED" And OPT = "YES" Then
Cells(lastEmpty, 1).Select
Sheet5.Range("MNFX").Copy
ActiveCell.PasteSpecial xlPasteAll
ElseIf FXDO = "DRAWOUT" And OPT = "YES" Then
Cells(lastEmpty, 1).Select
Sheet5.Range("MNDO").Copy
ActiveCell.PasteSpecial xlPasteAll
End If
With Sheet6.Columns
.WrapText = False
.AutoFit
End With
End Sub
答案 0 :(得分:-1)
您使用' IsEmpty'功能错了。
IsEmpty检查Variant类型变量是否已初始化,因此,#Is; IsEmpty'应该是变体。
在您的代码中,“IsEmpty'是(Cells(i,1).Value)。这不是一个变种,因此IsEmpty会返回' FALSE'任何时候。
结果,变量' lastEmpty'是0(初始值)。我猜你的代码就是这个问题。
要解决此问题,请遵循部分代码
For i = 2 To 1000
If IsEmpty(Cells(i, 1).Value) Then
lastEmpty = i
Exit For
End If
Next i
应更正为
For i = 2 To 1000
If Cells(i, 1).Value = "" Then
lastEmpty = i
Exit For
End If
Next i
这种修正使你的代码有效,我希望。
答案 1 :(得分:-2)
你把纸张作为Sheet6.blah表示,它应该是Sheets(“Sheet6”)。Blah Blah
我为您的代码做了一些简化,试试这个:
Sub AddMN()
'declare the variables
Dim MNFX As String
Dim MNDO As String
Dim FXDO As String
Dim OPT As String
Dim i As Integer
Dim lastEmpty As Integer
FXDO = Sheets("Sheet3").Range("F3")
OPT = Sheets("Sheet3").Range("H3")
Sheets("Sheet6").Activate
lastEmpty = Range("A" & Rows.Count).End(xlUp).Row + 1
If FXDO = "FIXED" And OPT = "YES" Then
Sheets("Sheet5").Range("MNFX").Copy
Cells(lastEmpty, 1).PasteSpecial xlPasteAll
ElseIf FXDO = "DRAWOUT" And OPT = "YES" Then
Sheets("Sheet5").Range("MNDO").Copy
Cells(lastEmpty, 1).PasteSpecial xlPasteAll
End If
With Sheets("Sheet6").Columns
.WrapText = False
.AutoFit
End With
End Sub