[英]Copying data from one spreadsheet to another using Macro and ActiveControl Button
我正在嘗試編寫一個宏,該宏將使用分配給活動控制按鈕的Marco將數據從一個電子表格復制到同一工作簿中的另一電子表格。 另外,我想按鈕復制到另一片材后清除字段中的數據。 但是,我正在努力調試此代碼。 誰能提供幫助?
Private Sub CommandButton1_Click()
Dim OrderDate As String, Job As String, AccountManager As String
Dim Site As String, DueDate As String, BudgetedHours As String
`enter code here`Supervisor As String
Dim TotalPieces As String, Billedhours As String, UnitsCompleted As String
Dim EmployeeName As String, Task As String
Dim StartTime As String, FinishTime As String, TotalTime As String
Dim Notes As String
Worksheets("Assembly Work Form").Select
Date = Range("B3")
Job = Range("B4")
CustomerName = Range("B5")
AccountManager = Range("B7")
Supervisor = Range("B8")
Site = Range("B9")
DueDate = Range("B10")
BudgetedHours = Range("B11")
TotalPieces = Range("F5")
Billedhours = Range("F3")
UnitsCompleted = Range("F6")
EmployeeName = Range("B15")
Task = Range("B15")
StartTime = ("E17")
FinishTime = ("G17")
TotalTime = ("I17")
Notes = Range("K17")
Worksheets("AssemblyTotals").Select
Worksheets("AssemblyTotals").Range("A2").Select
If Worksheets("AssemblyTotals").Range("A3").Offset("1,0") <> "" Then
Worksheets("AssemblyTotals").Range("A2").End(xlDown).Select
End If
ActiveCell.Offset(1, 0).Select
ActiveCell.Value = Date
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Job
ActiveCell.Offset(-1, 0).Select`enter code here`
ActiveCell.Value = CustomerName
Worksheets("Assembly Work Form").Select
Worksheets("Assembly Work Form").Range("DataFields").ClearContents
End Sub
基本上,您要執行以下操作:
Private Sub CommandButton1_Click()
Worksheets("AssemblyTotals").Range("SomeTargetAddress").Value = Worksheets("Assembly Work Form").Range("SomeSourceAddress").Value 'Copy a value
Worksheets("Assembly Work Form").Range("SomeSourceAddress").ClearContents 'Clear the original value
End Sub
當然,將“ SomeTargetAddress”和“ SomeSourceAddress”更改為有效的單元格引用。 另外請記住,您可以一次處理多個單元:
Private Sub CommandButton1_Click()
Worksheets("AssemblyTotals").Range("A2:A100").Value = Worksheets("Assembly Work Form").Range("A2:A100").Value 'Do 99 cells at once
End Sub
如果要從第一個空行開始:
Private Sub CommandButton1_Click()
Dim wr as Long 'Variable to store the row
wr = Worksheets("AssemblyTotals").Range("A2").End(xlDown).Row + 1
Worksheets("AssemblyTotals").Range("A" & wr).Value = Worksheets("Assembly Work Form").Range("A2:A100").Value 'Do 99 cells at once starting at the first empty row in Column A.
End Sub
無需先將所有內容存儲在變量中,除非以后打算在更多地方使用這些變量。 另外,請注意,您不應使用我的評論中提到的ActiveCell
和Select
等。
基於以上所述,您現在要做的就是正確地映射單元格,僅此而已。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.