ここから本文です

エクセルのVBA初心者です。行き詰ってしまいましたのでご教授いただければと思いま...

zlr********さん

2019/5/1413:46:13

エクセルのVBA初心者です。行き詰ってしまいましたのでご教授いただければと思います。

エクセルのシートにデータが詰まっています。

複数シートがあり列内容は一緒ですが、シートごとに行数が異なり、一度の操作でデータを更新したいと思っています。

INDEX+MATCHの関数を使っていますがVLOOKUPでも構いません。早いほうがいいです。今回更新するシートに#の文字を入れていっぺんに更新しようとしています。

以下の文で組んでみましたがでバックが起こってしまい、何が原因かがわからない状態です。


********************************
SUB TEST()

For Each ws In Worksheets
If InStr(ws.Name, "#") <> 0 Then

Dim s As Long
s = ws.Cells(Rows.Count, 2).End(xlUp).Row.Cells(2, 5).Resize(s, 1)
.Formula = "=INDEX(商品リスト!$B:$B,MATCH($C:$C,商品リスト!$A:$A,0))"
.Calculate
.Value = .Value
End With
End If
Next

END SUB

********************************

ご教授をお願いします。

閲覧数:
45
回答数:
3
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

tra********さん

2019/5/1416:14:07

推察すると↓のようなコードを書きたいのでしょうかね?
具体的な表のレイアウトや、やりたい事の説明がないので正しいかどうかわからないですが。。。。

あと設定しようとしている関数式は正しいのでしょうか?
手入力で試した式をアレンジしないと手間がかかるだけ。。

Sub TEST()
Dim ws As Worksheet, s As Long
For Each ws In Worksheets
With ws
If InStr(.Name, "#") <> 0 Then
With .Range(.Cells(2, 5), .Cells(Rows.Count, 2).End(xlUp))
.Formula = "=INDEX(商品リスト!$B:$B,MATCH($C:$C,商品リスト!$A:$A,0))"
.Value = .Value
End With
End If
End With
Next
End Sub

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

tok********さん

2019/5/1512:22:20

s = ws.Cells(Rows.Count, 2).End(xlUp).Row.Cells(2, 5).Resize(s, 1)
.Formula = "=INDEX(商品リスト!$B:$B,MATCH($C:$C,商品リスト!$A:$A,0))"

↑ここ、改行が変なのは転記ミスですか?

s = ws.Cells(Rows.Count, 2).End(xlUp).Row
.Cells(2, 5).Resize(s, 1).Formula = "=INDEX(商品リスト!$B:$B,MATCH($C:$C,商品リスト!$A:$A,0))"

nan********さん

2019/5/1414:02:50

For Each ws In Worksheets
If InStr(ws.Name, "#") <> 0 Then

End If
Next
ここで全ワークシートでループさせて、シート名に”#”がある時に
以下の処理を行うであり

>今回更新するシートに#の文字を入れて
はどこにもない。

また、End WithだけでWith~がないです。
いろいろ修正している時に消えたと思われます。

まずは処理の手順を文字に置き換えてから
コーディングして下さい。

参考にどうぞ
http://www.start-macro.com/55/w/s091.html

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる