VBA経験浅いため、初歩的なミスがあるかもしれません。
宜しくお願いします。
【状況】
案件ごとに品目数が異なります。
各品目に複数(5個)の情報が繋がっています。
この複数の情報を別シートの1行に並べていきたいです。
【条件】
①品目数は『Kcnt』個としております。
②品目数が『0』個の時は処理しません。
③品目数が『41』個以上の時は処理しません。
④品目数が『1』個~『40』個の時、別シートへのコピーを実行
以下、自分なりに作ってみたのですが、
条件④の処理が実行されていないと思われます。
ご指摘くださると助かります。
宜しくお願いします。
【作成したコード】
Option Explicit
Dim kari As Worksheet
Dim DB As Worksheet
Dim Kcnt, cnt, i, m, n As Integer
'品目数の抽出
Sub FKaden()
Set kari = Worksheets("sheet1")
Set DB = Worksheets("sheet2")
cnt = WorksheetFunction.CountA(Range("F7:F46"))
kari.Range("A5") = cnt
End Sub
'条件ごとにの処理(別シートへのコピー)
Sub FKaden2()
Set kari = Sheets("sheet1")
Set DB = Sheets("sheet2")
i = 1
Kcnt = kari.Range("A5").Value
If Kcnt = 0 Then
MsgBox "回収対象がありません。"
ElseIf Kcnt <= 40 Then
Do
m = 1 + i
n = 4 + i
DB.Cells(m, 4).Value = kari.Cells(6, n).Value
DB.Cells(m, 4).Value = kari.Cells(10, n).Value
DB.Cells(m, 4).Value = kari.Cells(14, n).Value
DB.Cells(m, 4).Value = kari.Cells(22, n).Value
DB.Cells(m, 4).Value = kari.Cells(30, n).Value
i = i + 1
Loop Until i > Kcnt
ElseIf Kcnt > 40 Then
MsgBox "品目数は40品目までです。"
End If
End Sub
【コード終わり】
以上です。
無駄な点や、根本的に考え方が違う場合にも
バッサリご指摘お願いします。
宜しくお願いします。
No.1ベストアンサー
- 回答日時:
まず、何がどういう状態でセルに入っているのかがわからない。
そして、コードだけ見て見るならば
1:DB.Cells(m, 4).Value = kari.Cells(6, n).Value
2:DB.Cells(m, 4).Value = kari.Cells(10, n).Value
3:DB.Cells(m, 4).Value = kari.Cells(14, n).Value
4:DB.Cells(m, 4).Value = kari.Cells(22, n).Value
5:DB.Cells(m, 4).Value = kari.Cells(30, n).Value
1~5行目まですべて同じセルに代入していますが、何か間違ってませんか?
ありがとうございます。
間違いです。Do以降のみ修正しました。
実際、今試していたのは1行目までで、
実行できていない状態です。
そもそも別ブックのシートからコピペ用のシートに貼り付けた各セルの情報を、
別シートに転記しようとしております。
別ブックでは、列=項目の情報、行=品目となっており、
抽出したい情報が入っている列は隣り合っていません。
各情報を任意の1に行品目①の情報①、品目①の情報②、品目①の情報③、・・・
というように並べていきたいのです。
同ブック内のコピペ用シートまでは手作業で行うつもりですが、
今まで簡単なコードしか触ったことがないため、
コードの書き方も正直あいまいです。
少し高度すぎるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Visual Basic(VBA) Sheet1のA列にコードB列にメアド、Sheet2のB列にコード一覧とD列にメアド一覧があり、Sh 3 2022/10/19 11:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの下部のシートタブの...
-
エクセルでセルの書式設定がで...
-
Excelで大量の2000個のリストを...
-
ワークシートの行が途中から表...
-
エクセルで別シートの同じ位置...
-
エクセルで数式は残したまま他...
-
VBA アクティブでないシートの...
-
EXCELで複数シート作成後、全シ...
-
エクセルで選択した行以外を削...
-
ロックしたセルのコピー&貼り付け
-
【エクセル】数式のセル番地を...
-
【エクセル】表から条件に合っ...
-
エクセルで勤務表の作成
-
1から5までの整数のみ入力可に...
-
セルに背景色がある行を別シー...
-
Excelで保護のかかったシートの...
-
エクセルマクロ コピー元と貼...
-
EXCELでコピーしたグラフのデー...
-
エクセル2010について質問です...
-
VBAで新しいエクセルファイルに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで別シートの同じ位置...
-
エクセルでセルの書式設定がで...
-
エクセルの下部のシートタブの...
-
EXCELでコピーしたグラフのデー...
-
シート全体を他のブックのシー...
-
ワークシートの行が途中から表...
-
ロックしたセルのコピー&貼り付け
-
excelで勝手にテキストボックス...
-
Excelで保護のかかったシートの...
-
エクセルで数式は残したまま他...
-
VBA アクティブでないシートの...
-
Excelで大量の2000個のリストを...
-
エクセルで打ち込んだ数字を自...
-
シート保護してても並び替えを...
-
【エクセル】表から条件に合っ...
-
【エクセル】数式のセル番地を...
-
シート保護したExcelへの画像貼...
-
コピー&ペーストすると、VLOOK...
-
EXCELで複数シート作成後、全シ...
-
エクセルで多数のシートをまと...
おすすめ情報
【修正】2016/1/20 22:06
Do
m1 = 1 + i
m2 = 2 + i
m3 = 3 + i
m4 = 4 + i
m5 = 5 + i
n = 4 + i
DB.Cells(m1, 4).Value = kari.Cells(6, n).Value
DB.Cells(m2, 4).Value = kari.Cells(10, n).Value
DB.Cells(m3, 4).Value = kari.Cells(14, n).Value
DB.Cells(m4, 4).Value = kari.Cells(22, n).Value
DB.Cells(m5, 4).Value = kari.Cells(30, n).Value
お陰さまで解決しました。
単純に、対応するセルの選択が間違っていたようです。
お騒がせしました!!