Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.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_Vba - Fatal编程技术网

在Excel VBA中,最后一行向上而不是向下

在Excel VBA中,最后一行向上而不是向下,excel,vba,Excel,Vba,这是我的代码,有点不对劲,虽然它确实有效,但不是我想要的方式 Option Explicit Sub ONJL() Dim lastrow As Long Dim wsPAR As Worksheet 'PAERTO Dim wsRD As Worksheet 'Raw Data Dim wsTEM As Worksheet 'Archive Set wsPAR = Sheets("PAERTO") Set wsRD = Sheets("Raw

这是我的代码,有点不对劲,虽然它确实有效,但不是我想要的方式

Option Explicit

Sub ONJL()
    Dim lastrow As Long
    Dim wsPAR As Worksheet 'PAERTO
    Dim wsRD As Worksheet 'Raw Data
    Dim wsTEM As Worksheet 'Archive

    Set wsPAR = Sheets("PAERTO")
    Set wsRD = Sheets("Raw Data")
    Set wsTEM = Sheets("Template")

    With wsPAR
            Application.ScreenUpdating = False
            wsPAR.Range("B23:I300").Clear
            lastrow = wsRD.Range("B3").Row + 23
            wsTEM.Range("A23:H23").Copy wsPAR.Range("B23:I" & lastrow)
            .Range("F4").Formula = "=SUMPRODUCT(--(I23:I" & lastrow & ">='Raw Data'!K2),--(I23:I" & lastrow & "<='Raw Data'!K3))"
            .Range("F5").Formula = "=SUMPRODUCT(--(I23:I" & lastrow & ">='Raw Data'!K3),--(I23:I" & lastrow & "<='Raw Data'!K4))"
            .Range("F6").Formula = "=SUMPRODUCT(--(I23:I" & lastrow & ">='Raw Data'!K4),--(I23:I" & lastrow & "<='Raw Data'!K5))"

            lastrow = wsRD.Range("E3").Row + 23
            wsTEM.Range("I23:U23").Copy wsPAR.Range("M23:Y" & lastrow)


            Application.ScreenUpdating = True

    End With

End Sub
选项显式
分包商()
最后一排一样长
将wsPAR标注为工作表“PAERTO”
将wsRD调整为工作表的原始数据
将wsTEM作为工作表存档
设置wsPAR=图纸(“PAERTO”)
设置wsRD=图纸(“原始数据”)
设置wsTEM=图纸(“模板”)
与wsPAR
Application.ScreenUpdating=False
wsPAR.范围(“B23:I300”)。清除
lastrow=wsRD.范围(“B3”)。第行+23
wsTEM.Range(“A23:H23”)。复制wsPAR.Range(“B23:I”和lastrow)

.Range(“F4”).Formula=“=SUMPRODUCT(--(I23:I”和lastrow&“>=”原始数据“!K2),-(I23:I”和lastrow&“=”原始数据“!K3),-(I23:I”和lastrow&“=”原始数据“!K4),-(I23:I”和lastrow&“将下面两行中的.Row替换为.Value

lastrow = wsRD.Range("B3").Row + 23
lastrow = wsRD.Range("E3").Row + 23

基本上,您要求VBA在这两种情况下都获取范围的行号3,并将其添加到23。如果您希望获取每个范围内的值并将其添加到23,则需要使用
.value
属性。

将下面两行中的.row替换为.value

lastrow = wsRD.Range("B3").Row + 23
lastrow = wsRD.Range("E3").Row + 23
实际上,您要求VBA做的是在这两种情况下都获取范围的行号3,并将其添加到23。如果要获取每个范围内的值并将其添加到23,则需要使用
.value
属性