1

我的问题是我希望能够将不同源工作表(即 PRICES1 和 PRICES2 及更多)中的特定单元格值复制到另一个工作表(TOTALS)中的第一个空行。到目前为止的代码完成了这项工作,但是如果例如 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 文件: sendspace 附加的 excel 文件

4

1 回答 1

0

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

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

等等

于 2013-11-04T17:38:09.350 回答