共用方式為

想要讓不同工作表間能夠連動(匯入總表)

匿名
2024-12-03T01:34:39+00:00

各位好,小弟又遇到了一個問題,隨著工作負責度上升,一個工作日誌的存在已經不可或缺,但是手動輸入會有失誤的產生,遂:

工作表1為“總表”。

工作表2為“客戶1”。

工作表3為“客戶2”。

工作日誌最重要的就是時序,也就是排列的問題。

EX:我在工作表2的A1輸入值(聯絡某某客戶),接著在工作表2的A1輸入值(寄信給某人),再於工作表2的A2輸入值(繳費給某某)

希望達成的效果是在總表(工作表1)自動顯示為:

A B C D E
1 客戶1 聯絡某某客戶
2 客戶2 寄信給某人
3 客戶1 繳費給某某

如各位所見,我還同時希望將工作表的名稱顯示在總表A行,因此似乎有點複雜,但是在我的檔案設定中A行是本身就是一個下拉式清單,而清單的設定本來也就是工作表的名稱,因此這部分的問題並不是特別重要。

(也就是說如果這個問題有解的話,究竟是要於總表作業匯入其他工作表,還是選擇反之都沒有問題,僅僅是工作方式的選擇。)

我想克服的問題就只有如何讓資料匯入的時候照順序排列而已。請問這是可能的嗎?

Microsoft 365 和 Office | Excel | 家用版 | Windows

鎖定的問題。 此問題已從 Microsoft 支援服務社群移轉。 您可以對其是否有幫助進行投票,但無法對問題新增註解或回覆,或進行追蹤。

0 則留言 沒有留言

由問題作者接受的回答

匿名
2024-12-04T11:00:09+00:00

你好,張書櫃

您可以使用此代碼來分佈總表中的資料:

Sub DistributeTasks()

    Dim summaryWs As Worksheet

    Dim ws As Worksheet

    Dim lastRow As Long

    Dim i As Long

    Dim targetWs As Worksheet

    Dim targetRow As Long

    Set summaryWs = ThisWorkbook.Sheets("總表")

    lastRow = summaryWs.Cells(Rows.Count, 1).End(xlUp).Row

    For Each ws In ThisWorkbook.Worksheets

        If ws.Name <> "總表" Then

            ws.Range("A1:B" & ws.Cells(Rows.Count, 1).End(xlUp).Row).ClearContents

        End If

    Next ws

    For i = 1 To lastRow

        On Error Resume Next

        Set targetWs = ThisWorkbook.Sheets(summaryWs.Cells(i, 1).Value)

        On Error GoTo 0

        If Not targetWs Is Nothing Then

            targetRow = targetWs.Cells(Rows.Count, 1).End(xlUp).Row + 1

            targetWs.Cells(targetRow, 1).Value = targetRow

            targetWs.Cells(targetRow, 2).Value = summaryWs.Cells(i, 2).Value

        End If

    Next i

End Sub

在總表中輸入內容,然後執行。

希望以上資訊能幫到您。如果您需要進一步幫助,請隨時發送消息。

最美好的祝願

Aiden.C - MSFT |Microsoft社群支援專家

此回答有幫助嗎?

有 1 人認為此回答有所幫助。
0 則留言 沒有留言

由問題作者接受的回答

匿名
2024-12-03T09:19:53+00:00

你好,張書櫃

歡迎來到微軟社區。

您可以使用 VBA 來解決自動總結不同工作表之間的資料,並按時間順序排列的問題,以下是我根據您的描述所做的步驟,如有錯誤,請指出:

步驟 1: 建立工作表

  1. 建立工作表
    • 打開 Excel,新建一個工作簿。
    • 建立三個工作表,分別命名為「總表」、「客戶1」和「客戶2」。

步驟 2: 輸入數據

  1. 在「客戶1」工作表中輸入數據
    • 在 A1 輸入:「聯絡某某客戶」
    • 在 A2 輸入:「繳費給某某」
  2. 在「客戶2」工作表中輸入數據
    • 在 A1 輸入:「寄信給某人」

步驟 3: 設置 VBA 宏

  1. 打開 VBA 編輯器
    • 按下 Alt + F11 打開 VBA 編輯器。
  2. 插入新模組
    • 在 VBA 編輯器中,點擊 Insert > Module
  3. 輸入以下代碼: Sub UpdateSummary()     Dim ws As Worksheet     Dim summaryWs As Worksheet     Dim lastRow As Long     Dim summaryRow As Long     Dim i As Long     ' 設置總表工作表     Set summaryWs = ThisWorkbook.Sheets("總表")     summaryRow = 2 ' 總表中數據開始的行     ' 清除總表中的現有數據     summaryWs.Range("A2:E" & summaryWs.Cells(Rows.Count, 1).End(xlUp).Row).ClearContents     ' 遍歷每個工作表     For Each ws In ThisWorkbook.Worksheets         If ws.Name <> "總表" Then             ' 找到當前工作表中有數據的最後一行             lastRow = ws.Cells(Rows.Count, 1).End(xlUp).Row             ' 複製數據到總表             For i = 1 To lastRow                 summaryWs.Cells(summaryRow, 1).Value = ws.Name                 summaryWs.Cells(summaryRow, 2).Value = ws.Cells(i, 1).Value                 summaryRow = summaryRow + 1             Next i         End If     Next ws End Sub
  4. 保存並關閉 VBA 編輯器
    • 點擊 File > Close and Return to Microsoft Excel

步驟 4: 執行宏

  1. 執行宏
    • Alt + F8,選擇 UpdateSummary,然後點擊 Run

檢查結果

  • 打開「總表」工作表,你應該會看到如下數據:

注意事項

  • 每次在「客戶1」和「客戶2」中更新數據後,需重新執行宏以更新「總表」。
  • 確保每個工作表的名稱正確,以便宏能正確識別。

希望以上資訊能幫到您。如果您需要進一步幫助,請隨時發送消息。

最美好的祝願

Aiden.C - MSFT |Microsoft社群支援專家

此回答有幫助嗎?

有 1 人認為此回答有所幫助。
0 則留言 沒有留言

10 個其他答案

排序依據: 最實用
  1. 匿名
    2024-12-05T06:07:49+00:00

    你好,張書櫃

    Crying很抱歉,這句話也出現了轉換錯誤

    把這句話裡面的ws.Range("A1:B" & ws.Cells(Rows.Count, 1).End(xlUp).Row).ClearContents

    &改为&

    ws.Range("A1:B" & ws.Cells(Rows.Count, 1).End(xlUp).Row).ClearContents

    下面的程式碼我檢查確定沒問題了! ! !

    感謝你的耐心! ! !謝謝:)

    最美好的祝願

    Aiden.C - MSFT |Microsoft社群支援專家

    此回答有幫助嗎?

    有 1 人認為此回答有所幫助。
    0 則留言 沒有留言
  2. 已刪除

    由於違反我們的規範,因此已刪除此答案。 在採取動作之前,會透過自動化偵測手動報告或識別答案。 如需詳細資訊,請參閱我們的管理辦法


    已關閉註解。 深入了解

  3. 匿名
    2024-12-04T03:44:55+00:00

    很感謝您的幫助,每次詢問之後總是獲益良多,可是我似乎不小心迷糊了焦點,看過上述程式碼後我找出了我迷惑的問題。

    依照上開程式碼的運作下,各工作表會依照工作表各自為一個群體按照時序顯示,但是我其實在總表中需要它們不依照工作表,僅僅是依照時序排列。

    因此我想問的是,能不能改成在總表作業,然後將該值放到特定工作表的狀態呢?(如此便不必處理時序的問題)

    EX:

    工作表1為“總表”。

    工作表2為“客戶1”。

    工作表3為“客戶2”。

    工作表4為“客戶3”。

    在工作表1

    在A1輸入“客戶1”,並於B1輸入“聯絡某某客戶”。

    在A2輸入“客戶2”,並於B2輸入“寄信給某人”。

    在A3輸入“客戶1”,並於B3輸入“繳費給某某”

    欲達成的效果為。

    在工作表2

    A1顯示“1”,B1顯示“聯絡某某客戶”

    A2顯示“2”,B2顯示“繳費給某某”

    在工作表3

    A1顯示“1”,B1顯示“寄信給某人”

    在工作表4

    沒有顯示任何東西。

    這樣一來,我似乎就不必考慮時序的問題(因為於總表作業,時序總是正確的),如果不介意的話,請幫幫我。

    此回答有幫助嗎?

    0 則留言 沒有留言