Sub setData()
Dim hitCol As Long
Dim i As Long, j As Long
Dim errDays() As Long, errCnt As Long
'入力データチェック
If Not chkData Then End
Application.ScreenUpdating = False
'データ登録
With Sheets(strSheet)
For i = 1 To 5
If days(i) <> 0 Then
Err.Clear
hitCol = WorksheetFunction.Match(days(i), .Rows(7), 0)
If Err.Number = 0 Then
For j = 1 To 27
'組立・行程
.Cells(hitRow + j, hitCol).Value = Cells(j + 9, i * 2 + 2).Value
Next j
.Cells(hitRow + 30, hitCol).Value = Cells(39, i * 2 + 2).Value '生産数
.Cells(hitRow + 32, hitCol).Value = Cells(40, i * 2 + 2).Value '作業工数
.Cells(hitRow + 33, hitCol).Value = Cells(41, i * 2 + 2).Value 'ケース数
Else
errCnt = errCnt + 1
ReDim Preserve errDays(errCnt)
errDays(errCnt) = i
End If
End If
Next i
End With
ThisWorkbook.Save
If errCnt = 0 Then
Application.ScreenUpdating = True
MsgBox "データを[" & strSheet & "]シートにセットしました。", vbInformation
Else
For i = 1 To errCnt
Cells(8, errDays(i) * 2 + 2).Interior.Color = vbYellow
Next i
Application.ScreenUpdating = True
MsgBox "[" & strSheet & "]シートに該当する日が無かったため、データをセットできませんでした。" & vbCrLf & "シートを確認してください。", vbExclamation
End If
Sheets(strSheet).Activate
Application.GoTo Cells(hitRow, "C"), True
End Sub
のようなコードがあります。
セルC19、C20、D30、D31のデータはセットしないようにしたいのですがどうしてもわかりません。
教えて頂けないでしょうか。お願い致します。
No.1ベストアンサー
- 回答日時:
こんにちは
かなりの変数がグローバルになっているようですし、シートののレイアウトや意味も不明なので、一部のコードだけ示されても・・
・・と言う感じですが、どうしてもこのままで無理矢理やりたいのなら、値をセットする際のアドレスが、『C19、C20、D30、D31』だったらセットしない、と言う処理にするしかないのでは?
(もしかすして、セットする方のセルではなく、参照する方のセルのことを言っているのならチェックするアドレスが逆になりますが・・)
とりあえず、上記の推測が当たっているとしてよいのなら・・
値をセットする可能性があるのは、セル位置からして
>.Cells(hitRow + j, hitCol).Value = Cells(j + 9, i * 2 + 2).Value
>.Cells(hitRow + 30, hitCol).Value = Cells(39, i * 2 + 2).Value '生産数
のどちらかになると推測しますので、値をセットする前に
hitRow + j、 hitRow + 30、 hitCol が、それぞれ「ご指定のアドレスでなければ値をセット、指定のアドレスなら何もしない」と言う条件を加えればご希望のようにはなると思います。
(hitRow>1が保証されている場合は、後の方の処理は対象外にできます)
※ 実際の処理内容や意味合いがわかれば、もっと効果的な方法があるものと思いますけれど、部分的なコードしかないのでこのような意味不明の対処法になってしまいます。
No.2
- 回答日時:
不明点1:データをセットしないようにしたいセル(C19、C20、D30、D31)は
転記元のセルでしょうか、それとも、転記先のセルでしょうか。
不明点2:データをセットしないようにしたいセルは(C19、C20、D30、D31)は、下記のどの項目でしょうか。
①組立・行程
②生産数
③作業工数
④ケース数
上記の不明点が明確になれば、修正用のマクロは提供可能です。
但し、外部変数が多いのと、シートのレイアウトが不明なので、こちらで動作確認はできません。従って、参考程度のマクロになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・ことしの初夢、何だった?
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロの「SaveAs」でエラーが...
-
EXCELのSheet番号って変更でき...
-
Count Ifのセルの範囲指定に変...
-
Changeイベントで複数セルへの...
-
VBA別シートの最終行の次行へ転...
-
Excel2013で切り取り禁止
-
VBA 実行時エラー1004 rangeメ...
-
楽天RSSからエクセルVBAを使用...
-
VBA 最終行を選んだシートにコ...
-
VBA 空白行に転記する
-
Excel 条件一致の別シートの行...
-
VBAで変数の数/変数名を動的に...
-
マクロ実行後に別シートの残像...
-
【VBA】データを各シートに自動...
-
VB2005でExcelのグラフのデータ...
-
100万件越えCSVから条件を満た...
-
同じ作業(データコピー・貼付...
-
VBAでEXCELから固定長...
-
Excel VBA オートフィルターで...
-
ExcelのVBAでやりたい操作でで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロの「SaveAs」でエラーが...
-
マクロ実行後に別シートの残像...
-
EXCELのSheet番号って変更でき...
-
VBA 空白行に転記する
-
Count Ifのセルの範囲指定に変...
-
楽天RSSからエクセルVBAを使用...
-
VBA 別ブックからの転記の高速...
-
【VBA】特定の条件でセルをコピー
-
Excel VBA オートフィルターで...
-
VBA別シートの最終行の次行へ転...
-
VBAで変数の数/変数名を動的に...
-
Changeイベントで複数セルへの...
-
100万件越えCSVから条件を満た...
-
テキストボックスから、複数の...
-
Excel VBAで、散布図のデータ範...
-
グラフマクロで系列を変数にす...
-
Excel2013で切り取り禁止
-
VBA Userformで一部別シートに...
-
ExcelのVBマクロを、バックグラ...
-
Unionでの他のシートの参照につ...
おすすめ情報