我有點無聊,所以我想我會掀起什麼來幫助你:
此代碼看起來在通過每一個工作表中的設備日誌簿和循環,對評價今天的截止日期date ...然後它會將您提到的單元格中的信息複製到您運行此代碼的任何工作簿的下一行中。你可能需要做一些調整,但這應該是一個好的開始。
Sub equipLog()
Dim eqWb As Workbook
Dim sh1 As Worksheet
Dim due, ID, fac, bldg, div, dept, room
Dim dateDue As Date
Dim rArr As Variant
Dim ws As Worksheet
Set sh1 = ThisWorkbook.Sheets("Sheet1")
Set eqWb = Workbooks.Open("C:\Code3\Equipment Log.xlsx") ' change this to your equipment sheet path
wsNums = eqWb.Worksheets.Count
For Each ws In eqWb.Worksheets
ws.Activate
Set due = Cells.Find("Due")
Set ID = Cells.Find("ID")
Set room = Cells.Find("Room")
lrEq = Range("A" & Rows.Count).End(xlUp).Row
For i = (due.Row + 1) To lrEq
dateDue = Cells(i, due.Column)
dd = DateDiff("d", Date, dateDue)
If Abs(dd) < 30 Then
' I'm assuming that the cells are all located in a row in the order you mentioned
rArr = Range(Cells(ID.Row + 1, ID.Column), Cells(room.Row + 1, room.Column))
x = 1
lr = sh1.Range("A" & Rows.Count).End(xlUp).Row
For Each c In rArr
sh1.Cells(lr + 1, x) = c
x = x + 1
Next c
sh1.Cells(lr + 1, x + 1) = dateDue
End If
Next i
Next ws
End Sub
你,斯托賓,太棒了。非常感謝!雖然,當我運行該程序(在稍微調整之後)時,它運行時沒有錯誤,但沒有發出原始工作表中的任何內容。我確定這是我忽略的東西。 – LudivousKain
我做到了。當我對它進行一步一步的調試時,腳本運行的很好,直到ws.Activate。一旦我開始瀏覽該循環,設置適當結果的值爲「到期」,設置ID結果爲「ID」等。當它到達日期時,它總是報告上午12:00。 dd最終是「空的」。我想這就是問題......? – LudivousKain
斯托賓,我只是想再次感謝你。我找到了問題(這不是你的代碼的問題,只是你知道),修復它,現在它無法正常工作。您的先生,應該得到比這個系統爲接受的答案所獎勵的15個代表點更多。 – LudivousKain