Excel VBA質問箱 IV

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

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


8 / 13292 ツリー ←次へ | 前へ→

【80807】エラー時のスキップ処理について Hiroshi 19/5/15(水) 10:09 質問[未読]
【80808】Re:エラー時のスキップ処理について ピンク 19/5/15(水) 11:35 発言[未読]
【80809】Re:エラー時のスキップ処理について Hiroshi 19/5/15(水) 15:44 お礼[未読]

【80807】エラー時のスキップ処理について
質問  Hiroshi  - 19/5/15(水) 10:09 -

引用なし
パスワード
   お世話になります。

 それぞれのセルにハイパーリンクを設定してシートをセット印刷するマクロを組んだのですが、「D」若しくは「F」の先がない場合があり、その際にその行そのものを印刷せずに次行へスキップしてしまいます。
 
 これを「B、D」若しくは「B、F」の組み合わせで印刷するようにしたいのですが、エラー処理、if構文、スキップ等試したのですが上手く動作しませんでした。ご教授いただきたいのでよろしくお願い致します。


Sub シート選択()

  Dim strSN(1 To 3) As String
  Dim i As Long
  
  On Error Resume Next
  
  For i = 1 To 100
  
  strSN(1) = ActiveSheet.Range("B" & i).Value
  strSN(2) = ActiveSheet.Range("D" & i).Value
  strSN(3) = ActiveSheet.Range("F" & i).Value
  
  Worksheets(strSN).PrintOut
  
  Next i
   
End Sub

【80808】Re:エラー時のスキップ処理について
発言  ピンク  - 19/5/15(水) 11:35 -

引用なし
パスワード
   ▼Hiroshi さん:
Sub シート選択()
  Dim strSN() As String
  Dim i As Long, j As Long, k As Long
  
  For i = 1 To 100
    For j = 2 To 6 Step 2
      If ActiveSheet.Cells(i, j).Value <> "" Then
        k = k + 1
        ReDim Preserve strSN(1 To k) As String
        strSN(k) = ActiveSheet.Cells(i, j).Value
      End If
    Next j
    Worksheets(strSN).PrintOut
    Erase strSN
    k = 0
  Next i
End Sub

【80809】Re:エラー時のスキップ処理について
お礼  Hiroshi  - 19/5/15(水) 15:44 -

引用なし
パスワード
   ピンクさん

ありがとうございます。

 完璧です。思い通りの作動でした。当初内容が激変していたので戸惑いましたが
アプローチ方法は一つではないと勉強になりました。

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