Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8156 / 13644 ツリー ←次へ | 前へ→

【34871】Formatを使って表示形式設定がうまくいき... さちきょん 06/2/15(水) 13:01 質問[未読]
【34879】Re:Formatを使って表示形式設定がうまくい... Ned 06/2/15(水) 19:21 発言[未読]
【34884】Re:Formatを使って表示形式設定がうまく... さちきょん 06/2/15(水) 20:41 お礼[未読]

【34871】Formatを使って表示形式設定がうまくいき...
質問  さちきょん  - 06/2/15(水) 13:01 -

引用なし
パスワード
   こんにちは。いつもお世話になっております。

先日教えていただいたコードです。
セルの表示形式の設定がうまくいかずに悩んでいます。

Range("I2:I" & Range("B65536").End(xlUp).Row)ですが、
.NumberFormat = "General"としても、
値が2/99や7/00となるセルのみ、値がFeb-99やJul-00など
となってしまい、そのセルの表示形式はmmm-yyになっています。

D,H,F列には、.NumberFormat = "@"の設定がされています。

どこがおかしいのか、調べたのですがわかりません。
いつも初歩的な質問で申し訳ありません。
どうぞよろしくお願いいたします。

・・・

With Range("I2:I" & Range("B65536").End(xlUp).Row)
  .Formula = _
  "=IF(D2<>D3,""mark"","""")&IF(D1=D2,I1&"","","""")&F2&""/""&LOOKUP(H2,{0,1,2,99},{""00"",""01"",""02"",""99""})"
  .Value = .Value
  .NumberFormat = "General"  

  Range("I:I").AutoFilter field:=1, Criteria1:="<>mark*"
  .SpecialCells(xlCellTypeVisible).ClearContents  
  
  ActiveSheet.AutoFilterMode = False
  .Replace what:="mark", replacement:="", lookat:=xlPart

・・・

【34879】Re:Formatを使って表示形式設定がうまく...
発言  Ned  - 06/2/15(水) 19:21 -

引用なし
パスワード
   こんにちは。あまり良い案ではないかもしれませんが

With Range("I2:I" & Range("B65536").End(xlUp).Row)
  .NumberFormat = "General"
  .Formula = _
  "=IF(D2<>D3,""mark"","""")&IF(D1=D2,I1&"","","""")& F2&""/""" _
    & "&LOOKUP(H2,{0,1,2,99},{""00"",""01"",""02"",""99""})"
  .NumberFormat = "@"
  .Value = .Value
  Range("I:I").AutoFilter field:=1, Criteria1:="<>mark*"
  .SpecialCells(xlCellTypeVisible).ClearContents
  ActiveSheet.AutoFilterMode = False
  .Replace what:="mark", replacement:="'", lookat:=xlPart
End With

と、文字列にして良ければ。また、
replacement:="'"
で余計なものがつきますが、これじゃダメでしょうか?

【34884】Re:Formatを使って表示形式設定がうまく...
お礼  さちきょん  - 06/2/15(水) 20:41 -

引用なし
パスワード
   ▼Ned さん:

こんばんは。
教えていただいたコードでうまく表示できました!
どうもありがとうございました!


>こんにちは。あまり良い案ではないかもしれませんが
>
>With Range("I2:I" & Range("B65536").End(xlUp).Row)
>  .NumberFormat = "General"
>  .Formula = _
>  "=IF(D2<>D3,""mark"","""")&IF(D1=D2,I1&"","","""")& F2&""/""" _
>    & "&LOOKUP(H2,{0,1,2,99},{""00"",""01"",""02"",""99""})"
>  .NumberFormat = "@"
>  .Value = .Value
>  Range("I:I").AutoFilter field:=1, Criteria1:="<>mark*"
>  .SpecialCells(xlCellTypeVisible).ClearContents
>  ActiveSheet.AutoFilterMode = False
>  .Replace what:="mark", replacement:="'", lookat:=xlPart
>End With
>
>と、文字列にして良ければ。また、
>replacement:="'"
>で余計なものがつきますが、これじゃダメでしょうか?

8156 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free