
'請問我程式這樣寫卻沒反應
 Dim datestar, dateend As String  '定義2個字串變數
 lastrow = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Rows(1).Row - 1  '最後一行
 Worksheets("異動檔資料").Activate   '指定工作表
   datestar = InputBox("要查詢開始日期的資料")  '輸入值給變數1
  For j = lastrow To 2 Step -1    '迴圈
  Val (datestar)  '把輸入的字串轉成數字
   If datestar < Cells(j, "D") Then  '判斷小於開始日期
       Rows(j).Delete    '若判斷成立就刪除
    End If
   Next      '下一個
  dateend = InputBox("要查詢結束日期的資料")   '輸入值給變數2
  For j = lastrow To 2 Step -1   '迴圈開始
  val (dateend)    '把輸入的字串轉成數字
   If Cells(j, "D") > dateend Then    '判斷大於結束日期
      Rows(j).Delete            '若判斷成立就刪除ˊ
    End If
   Next   '下一個!
假如我輸入開始日期為2019/1/5及結束日期為2019/1/20
那個第一行跟第二行的資料應該會被刪除  卻沒有刪除
我這樣寫  哪裡不符合  請高手指教  謝謝
Dim datestart as variant, dateend as variant
 lastrow = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Rows(1).Row - 1  
 Worksheets("異動檔資料").Activate   '指定工作表
   datestar = InputBox("要查詢開始日期的資料")  '輸入值給變數1
  For j = lastrow To 2 Step -1    '迴圈
  datestar = datevalue(datestar)  '把輸入的字串轉成數字
   If datestar < Cells(j, "D") Then  '判斷小於開始日期
       Rows(j).Delete    '若判斷成立就刪除
    End If
   Next      '下一個
  dateend = InputBox("要查詢結束日期的資料")   '輸入值給變數2
  For j = lastrow To 2 Step -1   '迴圈開始
  dateend = datevalue(dateend)    '把輸入的字串轉成數字
   If Cells(j, "D") > dateend Then    '判斷大於結束日期
      Rows(j).Delete            '若判斷成立就刪除ˊ
    End If
   Next   '下一個!