在备用工作表中运行VBA代码会触发错误的结果 - 尽管引用了



下面的代码试图从"输入"工作表中的单元格中提取值,然后将其显示在"输出"工作表中。 然后,它显示记录的最后一个值之间的差异,并将数字表示为百分比。

当我在输出表处于活动状态的情况下运行此代码时,它可以工作。 但是,当我从输出工作表运行它时,它不会。相反,它显示我希望在输入工作表的F列中复制的值,并在输出工作表中的错误单元格中显示差异和百分比差异。

它看起来正确地引用了我,但显然不是。 关于如何纠正的想法?

我很欣赏代码可以更整洁 - 我对此很陌生。

Sub Button1_Click()
Dim LastRow As Long
Dim RecentRow As Long
    With Sheets("Output")
         LastRow = .Cells(.Rows.Count, "F").End(xlUp).Row
         RecentRow = .Cells(.Rows.Count, "F").End(xlUp).Offset(1, 0).Row
         Range("F" & LastRow).Select
         ActiveCell.Offset(1, 0).Formula = "=Input!B4"
         ActiveCell.Offset(1, 0).Copy
         ActiveCell.Offset(1, 0).PasteSpecial (xlValues)
    End With
       ActiveCell.Offset(0, 1).Formula = "=(F" & RecentRow & "-F" & LastRow & ")"
       ActiveCell.Offset(0, 2).Formula = "=((F" & RecentRow & "/F" & LastRow & ")-1)"
End Sub

谢谢。

下面的代码应该可以解决你的问题 - 这是因为你的Range("F"和LastRow)。选择在"范围"之前没有句点。

Sub Button1_Click()
Dim LastRow As Long
Dim RecentRow As Long
    With Sheets("Output")
         LastRow = .Cells(.Rows.Count, "F").End(xlUp).Row
         RecentRow = .Cells(.Rows.Count, "F").End(xlUp).Offset(1, 0).Row
         With .Range("F" & LastRow)
             .Offset(1, 0).Formula = "=Input!B4"
             .Offset(1, 0).Copy
             .Offset(1, 0).PasteSpecial (xlValues)
             .Offset(0, 1).Formula = "=(F" & RecentRow & "-F" & LastRow & ")"
             .Offset(0, 2).Formula = "=((F" & RecentRow & "/F" & LastRow & ")-1)"
         End With
    End With
End Sub

此外,您可以通过以下方法在代码中获得更高的效率:

Sub Button1_Click()
Dim LastRow As Long
    With ThisWorkbook.Sheets("Output") 'Allow for code to work even if in another workbook.
         LastRow = .Cells(.Rows.Count, "F").End(xlUp).Row
         With .Range("F" & LastRow)
             .Offset(1, 0).Value2 = ThisWorkbook.Sheets("Input").Range("B4").Value2
             .Offset(0, 1).Formula = "=(F" & LastRow + 1 & "-F" & LastRow & ")"
             .Offset(0, 2).Formula = "=((F" & LastRow + 1 & "/F" & LastRow & ")-1)"
         End With
    End With
End Sub

最新更新