2013-11-04 74 views
1

我的問題是我希望能夠將來自不同源工作表(即PRICES1 & PRICES2 &以上)的特定單元格值複製到另一個工作表(TOTALS)中的第一個空行。 到目前爲止的代碼做的工作,但如果例如PRICES1運行,並在列R中留下空白單元格,然後當PRICES2被喚醒時,所有單元格值將佔用下一個可用的行,除了價值「B10」將佔用空白單元格在列R的前一行。將sheet2sheet中的特定單元格複製到下一個空白行

所以,我的問題是這樣的:有沒有辦法強制所有的單元格值佔用同一行,即使有一些空白單元格在前一行?例如,我可以強制其餘的值佔用同一行(當然在適當的單元格中)作爲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 attached excel file

回答

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 

+0

好吧,我是相當新的VBA所以我不知道我正確實施的變量(我得到一個類型不匹配)......我在哪裏posibly錯了嗎? –

+0

你可以再試一次。我從最後錯過了'.Row'。對於那個很抱歉。 – Sam

+0

我認爲這是可行的!非常感謝你!多謝!我希望我不會再打擾你了;-) –

相關問題