標題:
一個期限顯示問題
[打印本頁]
作者:
317
時間:
2013-9-4 10:47
標題:
一個期限顯示問題
請教各前輩及大大們,
小妹有一期限問題, 請教各先進, 附檔,
先行謝過..
[attach]15931[/attach]
作者:
ML089
時間:
2013-9-4 11:33
題目問的不清楚,資料給的不齊全
期限資料在哪裡?
顯示的時機是什麼?
作者:
GBKEE
時間:
2013-9-4 12:04
回復
1#
317
Option Explicit
Sub Ex()
Dim Rng As Range, f As Range, R As Integer
With Sheets("工作表1")
Set Rng = .Range("C:C").SpecialCells(xlCellTypeConstants)
Set f = Rng.Find(InputBox("輸入 酒名"), LOOKAT:=xlWhole)
If Not f Is Nothing Then
If .Cells(f.Row, "H") <> "" Then
R = f.Row
Else
R = .Cells(f.Row, "H").End(xlUp).Row
If R = Rng.Cells(1).Row Then R = R + 1
End If
MsgBox f & "到期日" & .Cells(R, "H")
End If
End With
End Sub
複製代碼
作者:
317
時間:
2013-9-4 17:48
回復
3#
GBKEE
謝謝版大, 這是我所需要, 但忽然有個想法, 能否把輸入名稱改為年份加月份, 如啟動巨集, 在顯示框中輸入年份及月份, 月份物品全數顥示,
小妹知道這是有難度, 不過是想知多一點, 學多一點.. 謝謝大大,
作者:
Hsieh
時間:
2013-9-4 23:04
回復
4#
317
Sub ex()
ym = InputBox("輸入入貨年月", , 201308)
For Each a In Range("H:H").SpecialCells(xlCellTypeConstants)
If IsDate(a) Then
If Format(Cells(a.Row, "B"), "yyyymm") = ym Then
mystr = IIf(mystr = "", Cells(a.Row, "B").Text & " " & Cells(a.Row, "C") & "到期日" & a.Text, mystr & Chr(10) & Cells(a.Row, "B").Text & " " & Cells(a.Row, "C") & "到期日" & a.Text)
End If
End If
Next
MsgBox mystr
End Sub
複製代碼
作者:
luhpro
時間:
2013-9-4 23:41
回復 GBKEE
謝謝版大, 這是我所需要, 但忽然有個想法, 能否把輸入名稱改為年份加月份, 如啟動巨集, 在顯 ...
317 發表於 2013-9-4 17:48
我猜樓主要的可能是只要是該月份進貨的都要秀出來,
所以我參考 3# 將 5# 修改了一下 :
Sub ex()
ym = InputBox("輸入入貨年月", , 201308)
Set Rng = Range("B:B").SpecialCells(xlCellTypeConstants)
For Each a In Rng
If IsDate(a) Then
If Format(Cells(a.Row, "B"), "yyyymm") = ym Then
stemp = IIf(mystr = "", "", Chr(10))
If Cells(a.Row, "H") <> "" Then
R = a.Row
Else
R = Cells(a.Row, "H").End(xlUp).Row
If R = Rng.Cells(1).Row Then R = R + 1
End If
mystr = mystr & stemp & "入貨日期 : " & Cells(a.Row, "B").Text & " " & Cells(a.Row, "C") & " 到期日 : " & Cells(R, "H")
End If
End If
Next
MsgBox mystr
End Sub
複製代碼
作者:
317
時間:
2013-9-5 00:13
本帖最後由 317 於 2013-9-5 00:14 編輯
謝謝樓上三位 GBKEE ,Hsieh ,luhpro ,前輩大大, 小妹衷心謝謝, 祝願快樂
作者:
GBKEE
時間:
2013-9-5 07:29
回復
4#
317
Option Explicit
Sub Ex()
Dim R As Integer, ym As String, mystr As String, A As Range
With Sheets("工作表1")
R = Range("C:C").SpecialCells(xlCellTypeConstants).End(xlDown).Row
ym = InputBox("輸入到期年月 格式[yyyymm]", , Format(.[H4], "YYYYMM"))
For Each A In .Range("H:H").SpecialCells(xlCellTypeConstants)
If IsDate(A) Then
If Format(A, "yyyyMm") = ym Then
If A.End(xlDown).Row > R Then
mystr = Join(Application.Transpose(.Range("C" & A.Row & ":C" & R)), vbLf)
Else
mystr = Join(Application.Transpose(.Range("C" & A.Row & ":C" & A.End(xlDown).Row - 1)), vbLf)
End If
Exit For
End If
End If
Next
MsgBox IIf(mystr <> "", ym & " 到期" & vbLf & mystr, ym & " 沒有到期的酒")
End With
End Sub
複製代碼
作者:
317
時間:
2013-9-5 09:56
樓上三位樓主, 早晨
小妹再度請教, 我把程式加以修改, 但小妹想如GBKEE版大大, 對話盒中只顯示到期貨物,
如輸入沒有到紅酒月份時, 亦會作出提示該月份沒有到期紅酒,
小妹試圖把GBKEE版大大程式混入下列程式中, 但不成功, 故請樓主們協助, 謝謝謝!
Sub Ex()
ym = InputBox("輸入入貨年月", , 201308)
Set Rng = Range("B:B").SpecialCells(xlCellTypeConstants)
For Each A In Rng
If IsDate(A) Then
If Format(Cells(A.Row, "B"), "yyyymm") = ym Then
stemp = IIf(mystr = "", "", Chr(10))
If Cells(A.Row, "m") <> "" Then
R = A.Row
Else
R = Cells(A.Row, "m").End(xlUp).Row
If R = Rng.Cells(1).Row Then R = R + 1
End If
mystr = mystr & stemp & "入貨日期 : " & Cells(A.Row, "B").Text & "編號 : " & Cells(A.Row, "c").Text & "名稱 : " & Cells(A.Row, "d").Text & "級別 :" & Cells(A.Row, "e") & " 到期日 : " & Cells(R, "m")
End If
End If
Next
MsgBox IIf(mystr <> "", ym & " 到期" & vbLf & mystr, ym & " 沒有到期的酒")
End Sub
作者:
GBKEE
時間:
2013-9-5 10:30
回復
9#
317
上傳檔案看看
作者:
317
時間:
2013-9-5 11:39
回復
10#
GBKEE
小妹現把檔案上傳, 有勞版大, 謝謝謝!
[attach]15947[/attach]
作者:
GBKEE
時間:
2013-9-5 14:36
回復
11#
317
對話盒中只顯示到期貨物,
如輸入沒有到紅酒月份時, 亦會作出提示該月份沒有到期紅酒,
可以再解釋一下嗎?
試著修改如下
Option Explicit
Sub Ex()
Dim ym As String, Rng As Range, A As Range, mystr As String, R As Integer
ym = InputBox("輸入入貨年月", , 201308)
Set Rng = Range("B:B").SpecialCells(xlCellTypeConstants)
For Each A In Rng
If IsDate(A) Then
If Format(Cells(A.Row, "B"), "yyyymm") >= ym Then '****
If mystr = "" Then mystr = "入貨日期" & vbTab & "編號" & vbTab & "名稱" & vbTab & "級別" & vbTab & "到期日"
If Cells(A.Row, "m") <> "" Then
R = A.Row
Else
R = Cells(A.Row, "m").End(xlUp).Row
If R = Rng.Cells(1).Row Then R = R + 1
End If
mystr = mystr & vbLf & Format(Cells(A.Row, "B"), "yyyy/mm/dd") & vbTab & Cells(A.Row, "c").Text & vbTab & Cells(A.Row, "d").Text & vbTab & Cells(A.Row, "e") & vbTab & Cells(R, "m")
End If
End If
Next
MsgBox IIf(mystr <> "", mystr, ym & " 沒有到期的酒")
End Sub
複製代碼
作者:
317
時間:
2013-9-5 18:23
回復
12#
GBKEE
GBKEE版大, 好,
小妹現再度把整理的檔案上傳, 內有明細, 加入圖片解釋, 先行謝過版大, 感恩..
[attach]15956[/attach]
作者:
GBKEE
時間:
2013-9-5 20:40
本帖最後由 GBKEE 於 2013-9-5 20:45 編輯
回復
13#
317
Option Explicit
Sub Ex()
Dim ym As String, A As Range, mystr As String, R As Integer, i As Integer
With Sheets("工作表3")
ym = InputBox("輸入到期日 年月", , Format(.[M4], "YYYYMM"))
For Each A In .Range("M:M").SpecialCells(xlCellTypeConstants)
If Format(A, "yyyymm") = ym Then '****
Debug.Print A.Row
If mystr = "" Then mystr = "入貨日期" & vbTab & "編號" & vbTab & "名稱" & vbTab & "級別" & vbTab & "到期日"
If A.End(xlDown).Row <> Rows.Count Then
R = A.End(xlDown).Row - 1
Else
R = .Cells(A.Row, "B").End(xlDown).Row
End If
For i = A.Row To R
mystr = mystr & vbLf & Format(.Cells(i, "B"), "yyyy/mm/dd") & vbTab & .Cells(i, "c") & vbTab & .Cells(i, "d") & vbTab & .Cells(i, "e") & vbTab & .Cells(A.Row, "m")
Next
End If
Next
End With
MsgBox IIf(mystr <> "", mystr, ym & " 沒有到期的酒")
End Sub
複製代碼
作者:
317
時間:
2013-9-5 21:48
回復
14#
GBKEE
GBKEE版大, 先行感謝版大回應,
有二個問題,
1, 便是我健入到期年月201312, 出示窗框如圖, 問題便在於2013/12/31日到期日只有一筆, 便是第四列, 但窗框出現把第4列至第8列都顯示出來,
而實質來說第5列至第8列都是沒有到期日, 可否把沒有到期日不顯示出來,
2,在窗框內第一行標籤編號,名稱, 級別, 到期日, 可否移至該行位置中位, 因這看起來, 是不會有混亂感覺, 謝謝
作者:
GBKEE
時間:
2013-9-6 06:19
回復
15#
317
5列至第8列都是沒有到期日, 可否把沒有到期日不顯示出來,
For i = A.Row To R
mystr = mystr & vbLf & Format(.Cells(i, "B"), "yyyy/mm/dd") & vbTab & .Cells(i, "c") & vbTab & .Cells(i, "d") & vbTab & .Cells(i, "e") & vbTab & .Cells(i, "m").Text '.Cells(A.Row, "m")改成.Cells(i, "m")
Next
複製代碼
2,在窗框內第一行標籤編號,名稱, 級別, 到期日, 可否移至該行位置中位, 因這看起來, 是不會有混亂感覺
[attach]15962[/attach]
如圖 是依 13#的檔案執行14#的程式碼,沒有你說的混亂感覺.
作者:
317
時間:
2013-9-6 08:42
回復
16#
GBKEE
GBKEE版大, 早晨
衷心感謝回應, 已試行, 真心謝謝謝!!!
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)