
その原因はざっくり言うと、ほぼ間違いなく以下のどちらか。
○どこかのセルが編集中だから
○「小人ちゃん」が他の仕事の最中だから
この講座を含む定額コースに参加するか、この講座を購入することで、講座を利用できるようになります。
定額コースに参加すると、そのコースの利用期間中はいつでも講座を利用できます。
講座を購入すると、いつでも講座を利用できます。
このページへの投稿/コメント
下記のプログラムで実行しましたが、実行後の結果はプログラムが動いていない。
何が問題なのでしょうか? sub matching()が動きません。
下記 sub InvoiceUK転記()を添付します。
=======================================
Sub InvoiceUK転記()
Dim i As Integer
Dim 最終行 As Integer
最終行 = Worksheets("出荷一覧UK").Range("A1").End(xlDown).Row
For i = 3 To 最終行
With Worksheets("Invoice UK")
.Range("A" & i * 5 + 11).Value = Worksheets("出荷一覧UK").Range("A" & i).Value
.Range("A" & i * 5 + 12).Value = Worksheets("出荷一覧UK").Range("B" & i).Value
製品名 = .Range("A" & i * 5 + 12).Value
.Range("F" & i * 5 + 12).Value = Worksheets("出荷一覧UK").Range("C" & i).Value
matching
End With
Next
End Sub
Sub matching()
Dim data
For data = 2 To 700
If Worksheets("Invoice UK").Range("A" & i * 5 + 12).Value = Worksheets("BrooksItemDatabase").Range("A" & data) Then
Worksheets("Invoice UK").Range("A" & i * 5 + 13).Value = Worksheets("BrooksItemDatabase").Range("E" & data).Value
Worksheets("Invoice UK").Range("A" & i * 5 + 14).Value = Worksheets("BrooksItemDatabase").Range("G" & data).Value
Worksheets("Invoice UK").Range("E" & i * 5 + 12).Value = Worksheets("BrooksItemDatabase").Range("F" & data).Value
Worksheets("Invoice UK").Range("H" & i * 5 + 12).Value = Worksheets("BrooksItemDatabase").Range("C" & data).Value
End If
Next
End Sub
> 下記のプログラムで実行しましたが、実行後の結果はプログラムが動いていない。
「実行した」なら、「プログラムは動いた」はずです。
日本語がおかしいか、現象に対する理解がおかしいです。
動作テスト方法の基本を以下で解説しています。
まずはこれらを見てください。
【動画10】 基礎講座第1章10 - 自動データヒント機能
【動画11】 基礎講座第1章11 - テストの方法
https://forum.pc5bai.com/lesson/course/25
↑
各動画で、その動画に関連した質問をされている方とのやりとりも載せています。あわせて参考にしてください。
それからステップイン実行しつつエクセル画面を都度確認し、としていき、どの行を実行しようとするタイミングで予定外の挙動をしているか?を確認ください。
それで分からなければ、問題の状況になっているときの変数値をすべて書き出して投稿してください。
あと、質問はどの動画の投稿画面にしてもよいというものではありません。
その話題に関連する動画のコメント欄にお願いします。(そのほうが、ほかの方の学びにもなりますので)
よろしくお願いいたします。
> お世話になっています。
> 下記のプログラムで実行しましたが、実行後の結果はプログラムが動いていない。
> 何が問題なのでしょうか? sub matching()が動きません。
>
> 下記 sub InvoiceUK転記()を添付します。
>
> =======================================
> Sub InvoiceUK転記()
>
>
> Dim i As Integer
> Dim 最終行 As Integer
>
>
> 最終行 = Worksheets("出荷一覧UK").Range("A1").End(xlDown).Row
>
>
> For i = 3 To 最終行
>
>
> With Worksheets("Invoice UK")
>
>
>
> .Range("A" & i * 5 + 11).Value = Worksheets("出荷一覧UK").Range("A" & i).Value
> .Range("A" & i * 5 + 12).Value = Worksheets("出荷一覧UK").Range("B" & i).Value
> 製品名 = .Range("A" & i * 5 + 12).Value
> .Range("F" & i * 5 + 12).Value = Worksheets("出荷一覧UK").Range("C" & i).Value
>
> matching
>
>
> End With
>
>
>
> Next
>
> End Sub
>
> Sub matching()
>
>
> Dim data
>
> For data = 2 To 700
>
> If Worksheets("Invoice UK").Range("A" & i * 5 + 12).Value = Worksheets("BrooksItemDatabase").Range("A" & data) Then
>
> Worksheets("Invoice UK").Range("A" & i * 5 + 13).Value = Worksheets("BrooksItemDatabase").Range("E" & data).Value
> Worksheets("Invoice UK").Range("A" & i * 5 + 14).Value = Worksheets("BrooksItemDatabase").Range("G" & data).Value
> Worksheets("Invoice UK").Range("E" & i * 5 + 12).Value = Worksheets("BrooksItemDatabase").Range("F" & data).Value
> Worksheets("Invoice UK").Range("H" & i * 5 + 12).Value = Worksheets("BrooksItemDatabase").Range("C" & data).Value
>
> End If
>
> Next
>
>
>
>
> End Sub
>
> マクロでプログラムする場合、"Set 検索する値 = Range("A" & i * 5 + 12).Value"の行で"オブジェクトが必要
> です”のエラーメッセージがでました。
> 何が問題か教えてください。
>
> sub プログラム
> =======================================
> Sub InvoiceUK転記()
>
>
> Dim i As Integer
> Dim 最終行 As Integer
>
>
> 最終行 = Worksheets("出荷一覧UK").Range("A1").End(xlDown).Row
>
>
> For i = 3 To 最終行
>
>
> With Worksheets("Invoice UK")
>
>
>
> .Range("A" & i * 5 + 11).Value = Worksheets("出荷一覧UK").Range("A" & i).Value
> .Range("A" & i * 5 + 12).Value = Worksheets("出荷一覧UK").Range("B" & i).Value
> 製品名 = .Range("A" & i * 5 + 12).Value
> .Range("F" & i * 5 + 12).Value = Worksheets("出荷一覧UK").Range("C" & i).Value
>
> 抽出
>
>
> End With
>
>
>
> Next
>
> End Sub
>
> Sub 抽出()
>
>
>
> Dim 検索する値 As Range, 検索する範囲 As Range
> Dim 検索結果1 As String, 検索結果2 As String, 検索結果3 As String, 検索結果4 As String
> Dim データベースシート As Worksheet
>
> Set データベースシート = Worksheets("BrooksItemDatabase")
> Set 検索する値 = Range("A" & i * 5 + 12).Value
> Set 検索する範囲 = Range(データベースシート.Range("A2"), データベースシート.Range("G700"))
>
> 検索結果1 = Application.WorksheetFunction.VLookup(検索する値, 検査する範囲, 5, False)
> 検索結果2 = Application.WorksheetFunction.VLookup(検索する値, 検査する範囲, 7, False)
> 検索結果3 = Application.WorksheetFunction.VLookup(検索する値, 検査する範囲, 6, False)
> 検索結果4 = Application.WorksheetFunction.VLookup(検索する値, 検査する範囲, 3, False)
>
> Worksheets("Invoice UK").Range("A" & i * 5 + 13).Value = 検索結果1
> Worksheets("Invoice UK").Range("A" & i * 5 + 14).Value = 検索結果1
> Worksheets("Invoice UK").Range("E" & i * 5 + 12).Value = 検索結果1
> Worksheets("Invoice UK").Range("H" & i * 5 + 12).Value = 検索結果1
>
>
>
> End Sub
>
そちらをご覧ください。
学習記録としてメモを残す
※メモを残すにはこの講座の利用権限が必要です。