簡體   English   中英

從一個電子表格中的數據復制到另一個使用宏和ACTIVECONTROL按鈕

[英]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

無需先將所有內容存儲在變量中,除非以后打算在更多地方使用這些變量。 另外,請注意,您不應使用我的評論中提到的ActiveCellSelect等。

基於以上所述,您現在要做的就是正確地映射單元格,僅此而已。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM