Vba 将特定单元格从Sheet2表复制到下一个空行

Vba 将特定单元格从Sheet2表复制到下一个空行,vba,excel,Vba,Excel,我的问题是,我希望能够将不同源工作表中的特定单元格值(即价格1和价格2及更多)复制到另一工作表中的第一个空行。 到目前为止,代码执行该任务,但是如果PrICES1运行并在列R中留下空白单元格,则当PrICES2被诱发时,除了值B10外,所有单元值将占据下一条可用行,否则将占据列R.前一行的空白单元格。 所以,我的问题是:是否有一种方法可以强制所有单元格值占据同一行,即使前一行中有一些空白单元格?例如,我是否可以强制其他值与B4和C4值占据相应单元格中的同一行 Sub PRICES1_click(

我的问题是,我希望能够将不同源工作表中的特定单元格值(即价格1和价格2及更多)复制到另一工作表中的第一个空行。 到目前为止,代码执行该任务,但是如果PrICES1运行并在列R中留下空白单元格,则当PrICES2被诱发时,除了值B10外,所有单元值将占据下一条可用行,否则将占据列R.

前一行的空白单元格。 所以,我的问题是:是否有一种方法可以强制所有单元格值占据同一行,即使前一行中有一些空白单元格?例如,我是否可以强制其他值与B4和C4值占据相应单元格中的同一行

Sub PRICES1_click()
ActiveSheet.Calculate
ActiveSheet.Columns("F:F").AutoFit

If Sheets("TOTALS").Range("M" & Rows.Count).End(3)(2).Value = "" Then

    If Sheets("TOTALS").Range("M" & Rows.Count).End(3)(2).Value = "" Then
    Sheets("TOTALS").Range("M" & Rows.Count).End(3)(2).Value = Sheets("PRICES1").Range("B4").Value
    Sheets("TOTALS").Range("N" & Rows.Count).End(3)(2).Value = Sheets("PRICES1").Range("C4").Value
    Sheets("TOTALS").Range("O" & Rows.Count).End(3)(2).Value = Sheets("PRICES1").Range("B6").Value
    Sheets("TOTALS").Range("S" & Rows.Count).End(3)(2).Value = Sheets("PRICES1").Range("L46").Value
End If

End If

Worksheets("TOTALS").Calculate
End Sub


Sub PRICES2_click()
ActiveSheet.Calculate
ActiveSheet.Columns("F:F").AutoFit

If Sheets("TOTALS").Range("M" & Rows.Count).End(3)(2).Value = "" Then

    If Sheets("TOTALS").Range("M" & Rows.Count).End(3)(2).Value = "" Then
    Sheets("TOTALS").Range("M" & Rows.Count).End(3)(2).Value = Sheets("PRICES2").Range("B4").Value
    Sheets("TOTALS").Range("N" & Rows.Count).End(3)(2).Value = Sheets("PRICES2").Range("C4").Value
    Sheets("TOTALS").Range("O" & Rows.Count).End(3)(2).Value = Sheets("PRICES2").Range("B6").Value
    Sheets("TOTALS").Range("R" & Rows.Count).End(3)(2).Value = Sheets("PRICES2").Range("B10").Value
    Sheets("TOTALS").Range("S" & Rows.Count).End(3)(2).Value = Sheets("PRICES2").Range("L46").Value
End If
End If


Worksheets("TOTALS").Calculate
End Sub
您可以在以下位置找到excel文件:

您应该将目标行设置为一个变量,并使用该变量。选择一个您知道将始终填充的列

Dim rowNo As Long

rowNo = Sheets("TOTALS").Range("M" & Rows.Count).End(XlUp).Row + 1


Sheets("TOTALS").Range("M" & rowNo).Value = Sheets("PRICES2").Range("B4").Value
Sheets("TOTALS").Range("N" & rowNo).Value = Sheets("PRICES2").Range("C4").Value
Sheets("TOTALS").Range("O" & rowNo).Value = Sheets("PRICES2").Range("B6").Value

等等。

好的,我对vba相当陌生,所以我不确定我是否正确实现了变量,因为我发现类型不匹配。。。我哪里可能错了?你能再试一次吗。我错过了。从最后一排开始。很抱歉,我想这行得通!非常感谢你,伙计!非常感谢!我希望我不会再打扰你-