2017-07-14 54 views
0
Sub Consume_RoundedRectangle111_Click() 
Dim i As Long, lastrow As Long, n As Long 
Dim vResult() 
Dim myWs As Worksheet 

Set myWs = ThisWorkbook.Sheets(Range("B9").Text) 

If ActiveSheet.Range("b4") = "" Or ActiveSheet.Range("b5") = "" Or ActiveSheet.Range("b6") = "" Or ActiveSheet.Range("b7") = "" Or ActiveSheet.Range("b8") = "" Or ActiveSheet.Range("b9") = "" Or ActiveSheet.Range("d4") = "" Or ActiveSheet.Range("d6") = "" Or ActiveSheet.Range("d7") = "" Or ActiveSheet.Range("d8") = "" Then 
    MsgBox "Please complete all fields!" 
Exit Sub 
End If 

'lastrow = Sheets("database").Cells(Cells.Rows.Count, 2).End(xlUp).Row + 1 
i = 10 
Do While Cells(i, 3) <> "" And i < 30 
    n = n + 1 
    ReDim Preserve vResult(1 To 9, 1 To n) 
    vResult(1, n) = ActiveSheet.Range("E7") ' Consumer 
    vResult(2, n) = ActiveSheet.Range("B4") ' Date 
    vResult(3, n) = ActiveSheet.Range("E4") ' Ref 
    vResult(4, n) = ActiveSheet.Range("B5") ' Code 
    vResult(5, n) = ActiveSheet.Range("B6") ' Description 
    vResult(6, n) = ActiveSheet.Range("E6") ' U/M 
    vResult(7, n) = ActiveSheet.Range("B7") ' Qty 
    vResult(8, n) = ActiveSheet.Range("B8") ' Price 
    vResult(9, n) = ActiveSheet.Range("E8") ' Transaction 
    i = i + 1 

Loop 

myWs.Range("a" & Rows.Count).End(xlUp)(2).Resize(n, 9) = WorksheetFunction.Transpose(vResult) 

MsgBox "Saved Succesfully!" 
ThisWorkbook.Save 
End Sub 

這是我知道的代碼,它將數據從一個工作表複製到另一個工作表稱爲數據庫。但我現在想要的是將數據傳輸或複製到單元格確定的工作表。假設我有一個數據要複製到另一個工作表中,並且在單元格A5中包含「NBB」,當我運行宏時,數據將被複制到名爲「NBB」的工作表中。對不起,我只是很難解釋這對英語...使用VBA將數據傳輸到工作表

+0

你得到什麼錯誤,在什麼行? – braX

+1

你能否提供你的問題的更多細節?你的頭銜非常不真誠,應該更具描述性。和你的問題一樣。你並沒有完全問你想要完成什麼。請閱讀[如何提問](https://stackoverflow.com/help/how-to-ask)和[如何創建最小,完整和可驗證的示例](https://stackoverflow.com/help/ mcve)提供關於如何正確地提出接受積極和有用答案有更好變化的問題的提示。沒有任何有關您的問題的詳細信息,在這裏沒有人可以真正幫助您 – Busse

+0

我編輯它,抱歉混淆。 –

回答

0

我覺得你要求我超過我即將提供,所以如果這不能完全回答你所需要的,請評論如下,我會更新我的答案。

如果單元格A5具有要導航到的圖紙名稱,則將數據複製到該圖紙非常簡單。只是這樣做:

ThisWorkbook.ActiveSheet.Range("A1:A20").Copy Destination:=Worksheets(Range("A5").Text).Range("A1:A20") 

這將帶你ActiveSheet你工作,採取系列A1:A20,複製並粘貼他們量程A1:A20在SHEETNAME從Range("A5").Text拉。我希望其中的一些內容需要進行編輯,以便提取所需的數據(您希望從中提取數據的範圍)並將其粘貼到您想要的範圍。

有關其他信息,請查看MSDN Range.Copy Method,因爲它可能包含與Range.Copy一起使用時的提示或有用信息。這也顯示了Destination參數如何工作,這是我用來顯示將要粘貼數據的Sheet和Range範圍。

讓我知道這是否有幫助。

+0

可悲的是,這將無法正常工作,我已經更新了上面的代碼,並且我在錯誤「無效的過程調用或參數」中緊跟在「循環」 –

相關問題