我正在嘗試製作庫存系統。我有可用數量和重新訂購數量。用戶每隔一段時間點擊一次提醒按鈕。如果再訂貨數量少於可用數量,則進入此報警頁面。每當用戶點擊「警報」按鈕時,我都會創建一個新的警報頁面。我爲此每次都清除此頁面的內容。不從電子表格的開頭寫入。 Excel VBA。
我面臨的問題是,MS Excel正在清除內容,但沒有從第二行寫入新記錄(第一行有列標籤)。如果我在倉庫中有5個內容之前有當前數量<重新排序數量,並且警報在警報頁面中生成,然後如果我處理這些5(添加數量使其不小於重新訂購數量),現在我有第6個內容的數量小於重新訂購數量,其他5個不顯示,但第6個顯示在第7行而不是第1行。我在哪裏弄錯了。 即使關閉文件並重新打開,也會發生這種情況。
感謝
row = 2
Worksheets("Alerts").UsedRange.ClearContents
Worksheets("Alerts").Range("B1") = Str(row)
Worksheets("Alerts").Cells(1, 1) = "Warehouse Name"
Worksheets("Alerts").Cells(1, 2) = "Name"
Worksheets("Alerts").Cells(1, 3) = "Quantity available"
Worksheets("Alerts").Cells(1, 4) = "Reorder Quantity"
rows_present_alerts = Worksheets("Alerts").UsedRange.Rows.Count + 1
While (Worksheets("InventoryID").Cells(row, 1) <> "")
If (CLng(Worksheets("InventoryID").Cells(row, 3)) <
CLng(Worksheets("InventoryID").Cells(row, 4))) Then
Worksheets("Alerts").Cells(rows_present_alerts, 1) = (Worksheets("InventoryID").Cells(row, 1))
Worksheets("Alerts").Cells(rows_present_alerts, 2) = (Worksheets("InventoryID").Cells(row, 2))
Worksheets("Alerts").Cells(rows_present_alerts, 3) = (Worksheets("InventoryID").Cells(row, 3))
Worksheets("Alerts").Cells(rows_present_alerts, 4) = (Worksheets("InventoryID").Cells(row, 4))
rows_present_alerts = rows_present_alerts + 1
End If
row = row + 1
Wend
以及我使用了兩個變量因爲工作表InventoryID將有很多行,並不是所有的都有資格獲得「警報」(條件是重新訂購數量應該少於可用數量)。因此,如果InventoryID中的第8個和第10個項目需要重新排序,則我的警報表將在第2行,第8個和第10個行中有記錄,其餘部分將爲空。 – Ank
@Ankur,是兩個變量是處理此問題的正確方法,並且我保留該方法在我的解決方案中。我剛剛刪除了關於使用範圍的位並清除了整個表格。我認爲這會對你有用。 –
這很有道理..傻我!謝謝 – Ank