Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel vba中的过去值_Excel_Copy Paste_Vba - Fatal编程技术网

Excel vba中的过去值

Excel vba中的过去值,excel,copy-paste,vba,Excel,Copy Paste,Vba,我正在尝试选择包含SUM公式的列。我想复制公式,只在同一列中超过值。但此代码不会将公式更改为值。你知道我该怎么解决这个问题吗 Sub Registrereren() Application.Calculation = xlCalculationManual Application.EnableEvents = False Application.ScreenUpdating = False On Error Resume Next Dim oWkSht As Worksheet Dim L

我正在尝试选择包含SUM公式的列。我想复制公式,只在同一列中超过值。但此代码不会将公式更改为值。你知道我该怎么解决这个问题吗

Sub Registrereren()

Application.Calculation = xlCalculationManual
Application.EnableEvents = False
Application.ScreenUpdating = False

On Error Resume Next

Dim oWkSht As Worksheet
Dim LastColumn As Long
Dim c As Date
Dim myCell As Range
Dim LastRow As Long

Sheets("Registration").Activate


Set oWkSht = ThisWorkbook.Sheets("Registration")
LastColumn = oWkSht.Range("A" & Columns.Count).End(xlToRight).Column
LastRow = oWkSht.Range("C" & Rows.Count).End(xlUp).Row

c = Date

Set myCell = oWkSht.Range("1:1").Find(What:=c, LookIn:=xlValues, lookat:=xlWhole, MatchCase:=False, SearchOrder:=xlByColumns)

If Not myCell Is Nothing Then
    myCell.Offset(1, 0).Formula = "=New_Order!N2+New_Order!O2+New_Order!P2"
    Range(myCell.Offset(1), Cells(LastRow, myCell.Column)).Select
    Selection.FillDown

    Range(myCell.Offset(1), LastRow).Select
    Selection.Copy
    Range(myCell.Offset(1), LastRow).PasteSpecial xlPasteValues
End If

Sheets("Main").Activate

Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Application.ScreenUpdating = True

End Sub

试试这个。LastRow不是有效的范围,因为它只是一个行号

Sub Registrereren()

Application.Calculation = xlCalculationManual
Application.EnableEvents = False
Application.ScreenUpdating = False

Dim oWkSht As Worksheet
Dim LastColumn As Long
Dim c As Date
Dim myCell As Range
Dim LastRow As Long

Set oWkSht = ThisWorkbook.Sheets("Registration")
LastColumn = oWkSht.Range("A" & Columns.Count).End(xlToRight).Column
LastRow = oWkSht.Range("C" & Rows.Count).End(xlUp).Row

c = Date

Set myCell = oWkSht.Range("1:1").Find(What:=c, LookIn:=xlValues, lookat:=xlWhole, MatchCase:=False, SearchOrder:=xlByColumns)

If Not myCell Is Nothing Then
    With oWkSht.Range(myCell.Offset(1), oWkSht.Cells(LastRow, myCell.Column))
        .Formula = "=New_Order!N2+New_Order!O2+New_Order!P2"
        .Value = .Value
    End With
End If

Sheets("Main").Activate

Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Application.ScreenUpdating = True

End Sub

太棒了。谢谢你