2017-09-08 4 views
0

私はすべてのジョブデータを保存するマクロを持っているワークシート(Stored Jobs)を持っています。私は今、保存されたデータをリロードするマクロを作成しようとしています。MHBDワークシートのF9に入力されたジョブ番号に基づいてジョブ番号がB列にあります。ジョブが置かれている行番号その行のデータをMHBDシートの異なるセルにコピーすることができます。 MHBDシート上のデータがばらばらに並んでいないので、行をまっすぐにコピーすることはできません。どのように私はそれが仕事に住んでいる行を返すと、その行から細胞をコピーするために使用するようになるのですか?Excel Load Dataボタン

Sub Load_Button() 

Dim StoredJobs As Worksheet 
Dim MHBD As Worksheet 
Dim lastRow As Long 
Dim f As Range, theJob 

Set StoredJobs = Worksheets("Stored Jobs") 
Set MHBD = Worksheets("Manual Hour Break Down") 
lastRow = StoredJobs.Range("B" & Rows.Count).End(xlUp).Row 

theJob = MHBD.Range("F9").Value 

'find the current job if it exists 
Set f = StoredJobs.Range("B4:B" & lastRow).Find(what:=theJob, lookat:=xlWhole).Row 

'if not found, use the next empty row 
If f Is Nothing Then MsgBox "Job has not been entered." 

End Sub 
+0

"私はこれまで間違って何をやっています?"あなたは私たちに伝える必要があります。このコードにバグがある場合は、そのバグについて説明してください。 –

+0

あなたは 'lastRow'を宣言しましたが、変数に値を代入するコードのどこにも表示されません。私は@JohnColemanに同意します。間違っていることを私たちに伝えずに間違ったことを尋ねるだけで、あなたの問題を理解するのが非常に難しくなります。それを言って、私は 'lastRow'があなたの問題の一つだと思っています – Zac

+0

私は唯一のエラーは"コンパイルエラー:タイプの不一致 "です。私はまた、lastrowの問題のコードを更新しました – jparks54

答えて

0

これが表示されます。 @johnColemanあなたは削除時に正しいと思いました。ロー

おかげさまで、アイデアや助けをいただき、ありがとうございました。

Sub Load_Button() 

Dim StoredJobs As Worksheet 
Dim MHBD As Worksheet 
Dim lastRow As Long 
Dim f As Range, theJob 

Set StoredJobs = Worksheets("Stored Jobs") 
Set MHBD = Worksheets("Manual Hours Break Down") 
lastRow = StoredJobs.Range("B" & Rows.Count).End(xlUp).Row 

theJob = MHBD.Range("F9").Value 

'find the current job if it exists 
Set f = StoredJobs.Range("B4:B" & lastRow).Find(what:=theJob, lookat:=xlWhole) 

'if not found, error message 
If f Is Nothing Then 
    MsgBox "Job: " & MHBD.Range("F9").Value & " has not been entered" & vbNewLine & "Try the Quote Number" 

'if found, copy data 
Else 
    StoredJobs.Range("C" & (f.Row)).Copy 
    MHBD.Range("B3").PasteSpecial xlPasteValues 

End If 

End Subの