Board logo

標題: [發問] 到期日自動彈窗提醒,以提醒過資料該如何調整呢? [打印本頁]

作者: starry1314    時間: 2015-7-11 19:48     標題: 到期日自動彈窗提醒,以提醒過資料該如何調整呢?

請問cells(欄,列) 正確嗎?

因資料都在同1SHEET,怎麼讓38欄提醒過的資料"移動"到別欄呢? 不然會重複提醒已經過去的資料!!
目前程式碼是只提醒當天的,但有時可能休假是隔天開啟這個檔案,就需要將欄位移動到別欄,因是使用超連結的無法複製聯結會跑掉

Sub 當日到期提醒()
For i = 4 To Cells(3, 2).End(xlDown).Row 'Sheets("客戶明細").UsedRange.Rows.Count
If (Sheets("客戶明細").Cells(i, 38).Value = Date) Then
MsgBox (Sheets("客戶明細").Cells(i, 4).Value & "該餐單已到期,請抽單")
Sheets("客戶明細").Cells(i, 45).Value = "已止餐"
If (Day(Data) = Day(Sheets("客戶明細").Cells(i, 38).Value)) Then
MsgBox (Sheets("客戶明細").Cells(i, 38).Value & "該餐單已到期,請抽單")
End If
Else
Sheets("客戶明細").Cells(i, 45).Value = "用餐中"
End If
Next i

End Sub
作者: starry1314    時間: 2015-7-12 02:12

請問cells(欄,列) 正確嗎?

因資料都在同1SHEET,怎麼讓38欄提醒過的資料"移動"到別欄呢? 不然會重複提醒已 ...
starry1314 發表於 2015-7-11 19:48

已解決~想請問紅字部分該如何縮短指令呢?

Sub 到期提醒()
Dim i As Long
With Sheets("客戶明細")
For i = 4 To Cells(3, 2).End(xlDown).Row 'Sheets("客戶明細").UsedRange.Rows.Count
If (.Cells(i, 38).Value = Date) Then
MsgBox (.Cells(i, 4).Value & "該餐單已到期,請抽單")

      
      .Cells(i, 38).Select     
    Selection.Cut Destination:=Range("AT" & i)


If (Day(Data) = Day(Cells(i, 38).Value)) Then
.Cells(i, 38).Value = "已止餐"
End If
Else
End If

Next i
End With
End Sub
作者: GBKEE    時間: 2015-7-12 06:01

回復 2# starry1314
  1. Option Explicit
  2. Sub ex()
  3.     Dim i As Integer
  4.     'Cells(列, 欄) 才正確
  5.     i = 38
  6.     i = Range("AT1").Column
  7.     Cells(5, i) = "正確"
  8.     Cells(5, "AT") = "正確"
  9.    
  10.     Cells(i, 38).Cut Destination:=Range("AT" & i)

  11. End Sub
複製代碼

作者: starry1314    時間: 2015-7-12 13:08

本帖最後由 starry1314 於 2015-7-12 13:15 編輯

回復 3# GBKEE


    感謝超版的幫忙~最近好像程式碼都加上註釋 變得易懂許多了




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)