質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

1563閲覧

VBA カット&ペースト

退会済みユーザー

退会済みユーザー

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2017/01/07 07:35

編集2017/01/07 07:36

H列に☓があったら、H列~N列までのデーターを
P列~V列に移動(カット&ペースト)する処理なのですが、
上手くいきません。

P~V列に移動するデーターは、
cells(3,"P")から貼り付けられるはずなのに、cells(1,"P")から貼り付けられているようです。。。。ちなみにデーターは3,000行程度あります。

どこが間違っているのでしょうか?

vba

1 'H列に"×"がるものデーター(H列~N列)をP列~U列へ移動させる。 2 kRow = Cells(Rows.Count, "K").End(xlUp).Row 3 hRow = kRow 4 diff = 3 5 For h = 3 To hRow 6 7 If Cells(h, "H").Value <> "" Then 8 Range(Cells(h, "H"), Cells(h, "N")).Cut Destination:=Range(Cells(diff, "P"), Cells(diff, "V")) 9 diff = diif + 1 10 End If 11 Next h

イメージ説明

ご教授お願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

diff = diif + 1

ここですね

diff = diff + 1

変数名のミスです

投稿2017/01/07 08:14

takito

総合スコア3111

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/01/07 08:30

diff = diif + 1をdiff = diff + 1に直しましたが、なぜか、画像の様に、cells(1,"P")にも書き込まれてしまいますね。一行空いて、cells(3,"P")から書き込まれているという状態ですね。。。 なにがおかしいのでしょうかね??
takito

2017/01/07 08:47

ミスっていたときのものが残っているわけではなく、ですか? 1行目にコピーされているものが何行目のレコードか、内容からわかると思います そこから推測するか、エディタの方でステップしながらデバッグして何がおきているか探るしかないかなと思います
退会済みユーザー

退会済みユーザー

2017/01/07 09:15

ミスっていたときのものが残っていたようでした。 変数は、大文字を入れたほうが、ミスがなくなりますね。。。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問