2017-07-14 91 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

可悲的是,这将无法正常工作,我已经更新了上面的代码,并且我在错误“无效的过程调用或参数”中紧跟在“循环” –

相关问题