過去ログ

                                Page     472
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼値が無い場合は、次の処理への文法?  ビビンバ 02/12/19(木) 15:52
   ┗Re:値が無い場合は、次の処理への文法?  クッパ 02/12/19(木) 16:43
      ┗Re:値が無い場合は、次の処理への文法?  ビビンバ 02/12/20(金) 10:35
         ┗Re:値が無い場合は、次の処理への文法?  クッパ 02/12/20(金) 11:40
            ┗Re:値が無い場合は、次の処理への文法?  ビビンバ 02/12/20(金) 12:54

 ───────────────────────────────────────
 ■題名 : 値が無い場合は、次の処理への文法?
 ■名前 : ビビンバ
 ■日付 : 02/12/19(木) 15:52
 -------------------------------------------------------------------------
   教えて下さい。

”J”の列に「ハード関連」の文字が入力されている場合
その「行」ごと「まとめ」シートにコピーする文法を教えて頂きました。
その続きで困ってます。

「ハード関連」の文字が見つからない場合はエラーになってしまいます。
なかった場合は”次の処理に進みなさい”とゆう具合にしたいのですが
できません(悲)


re = Cells(Rows.Count, "A").End(xlUp).Row
ce = Cells(1, Columns.Count).End(xlToLeft).Column
Application.ScreenUpdating = False
Range("J1:J" & re).AutoFilter Field:=1, Criteria1:="ハード関連"
Range("A2", Cells(re, ce)).SpecialCells(xlCellTypeVisible).Copy Sheets("まとめ").Range("A4")
Range("A" & re).AutoFilter
Application.ScreenUpdating = True

ここで次の処理(下記)に進みたいのですが無い場合、エラーになってしまいます。

Sheets(Array("既設関連", "既設以外")).Select
Sheets("既設関連").Activate
Range("E4:E100").Select
Selection.Insert Shift:=xlToRight
Range("E4").Select

どなたか教えて下さい。
 ───────────────────────────────────────  ■題名 : Re:値が無い場合は、次の処理への文法?  ■名前 : クッパ  ■日付 : 02/12/19(木) 16:43  -------------------------------------------------------------------------
   こんにちは。

If Application.CountIf(Range("J1:J" & re), "ハード関連") > 0 Then
  'ある時の処理 ここでAutoFilter
Else
  '無い時の処理
End If
 ───────────────────────────────────────  ■題名 : Re:値が無い場合は、次の処理への文法?  ■名前 : ビビンバ  ■日付 : 02/12/20(金) 10:35  -------------------------------------------------------------------------
   おはようございます
上手く行きましたが問題がまた、、、勉強不足ですいません。
下記を繰り返す場合は、どうすればいいでしょうか?
J列には、”パソコン””プリンタ”など8種類の文字が入っています。
それぞれを別のシートに行ごとコピーし貼り付けたいのです。
教えて頂いたマクロをAutoFilterの検索名・シート名を変更し下記のように書いてみたら
最初のパソコン時に"特になし"になった場合
それ以降は"特になし"になってしまいます。
どうしたら良いですか?
Countをクリアすれば良さそうな気がするのですが、、、

  re = Cells(Rows.Count, "A").End(xlUp).Row
  ce = Cells(1, Columns.Count).End(xlToLeft).Column
If Application.CountIf(Range("J1:J" & re), "パソコン") > 0 Then
  'ある時の処理 ここでAutoFilter
  Range("J1:J" & re).AutoFilter Field:=1, Criteria1:="パソコン"
  Range("A2", Cells(re, ce)).SpecialCells(xlCellTypeVisible).Copy Sheets("@1").Range("A4")
  Range("A" & re).AutoFilter
Else
  '無い時の処理
  Sheets("@1").Activate
  Range("E4").Select
  ActiveCell.FormulaR1C1 = "特になし"
End If


  re = Cells(Rows.Count, "A").End(xlUp).Row
  ce = Cells(1, Columns.Count).End(xlToLeft).Column
If Application.CountIf(Range("J1:J" & re), "スキャナ") > 0 Then
  'ある時の処理 ここでAutoFilter
  Range("J1:J" & re).AutoFilter Field:=1, Criteria1:="スキャナ"
  Range("A2", Cells(re, ce)).SpecialCells(xlCellTypeVisible).Copy Sheets("@2").Range("A4")
  Range("A" & re).AutoFilter
Else
  '無い時の処理
  Sheets("@2").Activate
  Range("E4").Select
  ActiveCell.FormulaR1C1 = "特になし"
End If


  re = Cells(Rows.Count, "A").End(xlUp).Row
  ce = Cells(1, Columns.Count).End(xlToLeft).Column
If Application.CountIf(Range("J1:J" & re), "プリンタ") > 0 Then
  'ある時の処理 ここでAutoFilter
  Range("J1:J" & re).AutoFilter Field:=1, Criteria1:="プリンタ"
  Range("A2", Cells(re, ce)).SpecialCells(xlCellTypeVisible).Copy Sheets("@3").Range("A4")
  Range("A" & re).AutoFilter
Else
  '無い時の処理
  Sheets("@3").Activate
  Range("E4").Select
  ActiveCell.FormulaR1C1 = "特になし"
End If
 ───────────────────────────────────────  ■題名 : Re:値が無い場合は、次の処理への文法?  ■名前 : クッパ  ■日付 : 02/12/20(金) 11:40  -------------------------------------------------------------------------
   If Application.CountIf(Range("J1:J" & re), "パソコン") > 0 Then
  'ある時の処理 ここでAutoFilter
  Range("J1:J" & re).AutoFilter Field:=1, Criteria1:="パソコン"
  Range("A2", Cells(re, ce)).SpecialCells(xlCellTypeVisible).Copy Sheets("@2").Range("A4")
  Range("A" & re).AutoFilter
Else
  '無い時の処理
  Sheets("@2").Activate
  Range("E4").Select
  ActiveCell.FormulaR1C1 = "特になし"
End If

上記で
Sheets("@2").Activate
となった場合、以後のコードは特別にシート名を指定してないので、アクティブなシートになっているSheets("@2")を対象としてしまいます。
以下コードにおいてもActivateとなったシートが対象になりますから、選択シートを元に戻すか選択せずに書き込む方法に変える必要があります。
では。


  Sheets("@2").Activate
  Range("E4").Select
  ActiveCell.FormulaR1C1 = "特になし"
 
  ↓
 
  Sheets("@2").Range("E4").Value = "特になし"
 ───────────────────────────────────────  ■題名 : Re:値が無い場合は、次の処理への文法?  ■名前 : ビビンバ  ■日付 : 02/12/20(金) 12:54  -------------------------------------------------------------------------
   あとはIF文を8回も書いているので、短くしようと思ってます
煮詰まった時には、お手数ですが教えて下さい。
大変ありがとうございました。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 472