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
这是我所知道的代码,它将数据从一个工作表复制到另一个名为database的工作表。但我现在想要的是将数据传输或复制到由单元格确定的工作表。假设我有一个数据要复制到另一个工作表中,而在单元格A5中它包含&#34; NBB&#34;,当我运行宏时,数据将被复制到名为&#34;的工作表中。 NBB&#34 ;.对不起,我只是很难用英语解释这个......
答案 0 :(得分:0)
我觉得你要求的不仅仅是我要提供的,所以如果这不能完全回答你的需求,请在下面评论,我会更新我的答案。
如果单元格A5
具有您要导航到的工作表名称,则将数据复制到该工作表很容易。做一些像:
ThisWorkbook.ActiveSheet.Range("A1:A20").Copy Destination:=Worksheets(Range("A5").Text).Range("A1:A20")
这将使用您正在处理的ActiveSheet,使用范围A1:A20
,将其复制并粘贴到从A1:A20
拉出的工作表名称上的范围Range("A5").Text
。我希望其中一些需要进行编辑以提取您想要的数据(您希望从哪个范围提取数据)并将其粘贴到您想要的范围内。
有关其他信息,请查看MSDN Range.Copy Method,因为它可能包含使用Range.Copy
时的提示或有用信息。这也显示了Destination
参数的工作原理,这就是我用来显示您将数据粘贴到哪个工作表和范围的内容。
如果有帮助,请告诉我。