一系列 Microsoft 試算表軟體,具有可用來對資料進行分析、製圖及通訊的工具。
你好,張書櫃
歡迎來到微軟社區。
如果我没有理解错的话,可以用这个代码(遍歷「總表」的每一行,取得案件編號。 在「案件清單」中尋找符合的案件編號,以取得對應的工作表名稱。 將任務資訊分配到目標工作表中。)
Sub DistributeTasks()
Dim summaryWs As Worksheet
Dim caseListWs As Worksheet
Dim ws As Worksheet
Dim lastRow As Long
Dim lastCaseRow As Long
Dim i As Long
Dim j As Long
Dim targetWs As Worksheet
Dim targetRow As Long
Dim caseNumber As String
Dim sheetName As String
Set summaryWs = ThisWorkbook.Sheets("總表")
Set caseListWs = ThisWorkbook.Sheets("案件清單")
lastRow = summaryWs.Cells(Rows.Count, 4).End(xlUp).Row
lastCaseRow = caseListWs.Cells(Rows.Count, 1).End(xlUp).Row
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "總表" And 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
caseNumber = summaryWs.Cells(i, 4).Value
sheetName = ""
For j = 2 To lastCaseRow
If caseListWs.Cells(j, 1).Value = caseNumber Then
sheetName = caseListWs.Cells(j, 2).Value
Exit For
ElseIf caseListWs.Cells(j, 3).Value = caseNumber Then
sheetName = caseListWs.Cells(j, 4).Value
Exit For
ElseIf caseListWs.Cells(j, 5).Value = caseNumber Then
sheetName = caseListWs.Cells(j, 6).Value
Exit For
End If
Next j
If sheetName <> "" Then
On Error Resume Next
Set targetWs = ThisWorkbook.Sheets(sheetName)
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, 5).Value
End If
End If
Next i
End Sub
最美好的祝願
Aiden.C - MSFT |Microsoft社群支援專家