advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 470 for EDATE (0.000 sec.)
[[20211228160037]]
#score: 9974
@digest: 02c3374e0fc9eef2bc246dfa7ae07eaa
@id: 90038
@mdate: 2021-12-28T11:52:18Z
@size: 4659
@type: text/plain
#keywords: mdate (33934), mdate2 (27066), memo (18874), sdate (14652), dateperiod (14536), scol (11957), ecol (10224), 示if (10036), srow (9099), hidden (8553), 示ra (7757), 求要 (7748), 了よ (7005), erow (6327), 始よ (6024), 全表 (5070), 1192 (4405), edate (3851), clng (3788), value2 (3281), 定if (3279), チク (3065), entirecolumn (3043), 示設 (2609), 非表 (2557), isdate (2553), を非 (1830), 研究 (1628), entirerow (1558), り後 (1214), 期間 (1130), 1500 (1121)
『行ではなく列で行いたい』(1192)
VBAの色々な機能を調べていたら参照にしたいものがありました。 C1に開始の日付C2に終了の日付を指定することで、指定期間のみを表示させるVBAになります。 こちらは、行を非表示にしていますが、列にしたいと思っています。 単純にRowをColumnに変更してみましたができませんでした。 N列に4月1日、NN列に3月31日と入力されているExcelデータがあるので 期間を指定した際、N列〜NN列の期間外を非表示としたいです。 年末の忙しい中申し訳ございませんが詳しい方がいらっしゃいましたらアドバイスをお願い致します。 Sub DatePeriod() Dim sRow As Long: sRow = 5 Dim eRow As Long: eRow = 1500 '全表示 Range(Rows(sRow), Rows(eRow)).Hidden = False '非表示設定 If IsDate(Range("C1").Value) And IsDate(Range("C2").Value) Then Dim mDate As Date: mDate = Cells(sRow, "C").Value Dim mDate2 As Date: mDate2 = Cells(eRow, "C").Value Dim sDate As Date: sDate = Range("C1").Value Dim eDate As Date: eDate = Range("C2").Value Dim memo As Long '開始より前を非表示 If CLng(sDate) > CLng(mDate) Then memo = CLng(sDate) - CLng(mDate) + sRow - 1 Range(Rows(sRow), Rows(memo)).Hidden = True Cells(memo + 1, "C").Activate End If '終了より後を非表示 If CLng(mDate2) > CLng(eDate) Then memo = CLng(eDate) - CLng(mDate) + sRow + 1 Range(Rows(memo), Rows(eRow)).Hidden = True End If End If End Sub < 使用 Excel:Office365、使用 OS:Windows10 > ---- >単純にRowをColumnに変更してみましたができませんでした。 横着せずに、ちゃんとそれぞれの命令を理解されたほうがよいとおもいます。 まぁそれはそれとして。 ↓は、5〜1500行目を非表示にしています。 Sub 研究1() Cells.EntireRow.Hidden = False Rows("5:1500").Hidden = True End Sub そして、それは↓でも同じ結果になります。 Sub 研究2() Cells.EntireRow.Hidden = False Range("A5:B1500").EntireRow.Hidden = True End Sub なぜ同じになるのかというと 前者は、Rows("5:1500")を非表示にしなさい 後者は、Range("A5:B1500")が【含まれる行】を非表示にしなさい という命令をしていて、結局5〜1500行目を操作しているからです。 なので、↓のどちらかになるようにしてみてはどうでしょうか? Range(セル範囲の始まり,セル範囲の終わり).EntireRow.Hidden = True Rows(始まりの行番号 & ":" & 終わりの行番号).Hidden = True (もこな2) 2021/12/28(火) 16:36 ---- ご参考。 Sub Test() Cells.EntireColumn.Hidden = False Range(Cells(1, "N"), Cells(1, Range("C1") - Range("N1") + Range("N1").Column - 1)).EntireColumn.Hidden = True End Sub (ひまつぶし) 2021/12/28(火) 16:44 ---- 失礼。行じゃなくて列でしたね。 であれば↓のように【.EntireColumn】を使えばよいですね。 Sub 研究3() Cells.EntireColumn.Hidden = False Range("B1", "Z5").EntireColumn.Hidden = True End Sub (もこな2) 2021/12/28(火) 16:47 ---- もこな2様、ひまつぶし様ありがとうございます。 これらは最初に入れるのでしょうか。 正直どこに入れたらいいのか分かりません。 大変勉強不足で申し訳ございません、、、 (1192) 2021/12/28(火) 16:51 ---- あくまでもご参考ということで、既存のコードを修正するものではなく 単独で動作します(ご希望の動作ではありませんが、試してみてください。) (ひまつぶし) 2021/12/28(火) 18:58 ---- オフラインでもオンラインでも要求要望は後から出てくるんですよね〜(笑) (チンチクリン) 2021/12/28(火) 19:56 ---- こんばんは! 今年も残り僅かになりましたね。 ちょっとお掃除疲れしましたので書いてみましたよ。 あってますか???? 2行目に日付が入力されているものとしてます。。。 後は、アレンジしていただけると助かります。。。 では、、では、、 Option Explicit Sub DatePeriod() Const sCol As Long = 14 Const eCol As Long = 378 '全表示 Range(Columns(sCol), Columns(eCol)).Hidden = False '非表示設定 If IsDate(Range("C1").Value) And IsDate(Range("C2").Value) Then Dim mDate As Long: mDate = Cells(2, sCol).Value2 Dim mDate2 As Long: mDate2 = Cells(2, eCol).Value2 Dim sDate As Long: sDate = Range("C1").Value2 Dim eDate As Long: eDate = Range("C2").Value2 Dim memo As Long '開始より前を非表示 If sDate > mDate Then memo = sDate - mDate + sCol - 1 Range(Columns(sCol), Columns(memo)).Hidden = True Cells(2, memo + 1).Activate End If '終了より後を非表示 If mDate2 > eDate Then memo = eDate - mDate + sCol + 1 Range(Columns(memo), Columns(eCol)).Hidden = True End If End If End Sub (SoulMan) 2021/12/28(火) 20:52 ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/202112/20211228160037.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97023 documents and 608156 words.

訪問者:カウンタValid HTML 4.01 Transitional