2017-04-13 11 views
1

私は、支払い計画を申請した学生のためのデータベースを作成しました。私は3枚を持っている:別のシートのセルを見つける

「お問合せ」 - これは、学生がサインアップするのを待っている間、データが格納されている場所です。

「確認済み」 - このデータには、学生ID(B1)、プランID(B2)、および有料ID(B3)の3つの行見出しがあります。

「マスターリスト」 - 支払い計画を確認した生徒の最終リスト。

"Confirmed"シートに手動でデータを入力してから、 "Inquiry"シートのStudent ID(B1)の値を検索するマクロを実行します。私はそれから、 "Inquiry"シートのB欄とE欄に計画ID(B2)とPay ID(B3)をコピーします。

データが入力されたら、「マスターリスト」シートに転送された行全体が必要です。

私はMarcoを録音しようとしましたが、録音したときのセルの現在の値のみを検出しました。私は数式ではかなり良いですが、前にマクロを実際に行っていません。

Range("B1").Select 
Selection.Copy 
Sheets("Enquiry").Select 
Cells.Find(What:="4536092", After:=ActiveCell, LookIn:=xlFormulas, _ 
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ 
    MatchCase:=False, SearchFormat:=False).Activate 
Rows("29:29").Select 
Application.CutCopyMode = False 
Selection.Copy 
Sheets("Masterlist").Select 
ActiveWindow.LargeScroll Down:=-7 
Rows("2:2").Select 
Sheets("Enquiry").Select 
Range("A29").Select 
Application.CutCopyMode = False 
ActiveCell.FormulaR1C1 = "4536092" 
Rows("29:29").Select 
Selection.Copy 
Sheets("Masterlist").Select 
Rows("2:2").Select 
Selection.Insert Shift:=xlDown 

答えて

0

マクロレコーダーを介してvbaの良さのすべてにアクセスできるわけではありません。以下のコードは、シートレイアウトの記述に基づいて作成したテストブックで動作します。将来的には、スクリーンショットを追加するか、ブックのドロップボックスxlsxを追加してください。また、ごくわずかな人がコードを最初から構築する時間がかかることに注意してください。

私はかなりこれをコメントしました。これで遊ぶ。質問があればコメントし、私は答えます。

Sub macroName() 

     'declaring range object Ranges hold values and cell addresses at the same time 
    Dim id As Range 
    Dim found As Range 

     'setting id var 
    Set id = Worksheets("Confirmed").Range("b2") 

     'making sure id we are checking isn't null 
    If Not id.Value = "" Then 
      'finding the value for var id. xlWhole means exact cell match. 
     Set found = Worksheets("Enquiry").Cells.find(What:=id, LookAt:=xlWhole) 
     MsgBox "Inserted new row in Masterlist for ID: " & id 
    Else 
     MsgBox "ID cannot be null at: " & id.Address 
    End If 

     'making sure we had a match from .find 
    If Not found Is Nothing Then 
      'inserting a new row 
     Worksheets("Masterlist").Range("a2").EntireRow.Insert 
      'setting new row to value of entire row value of range object. 
     Worksheets("Masterlist").Range("a2").Value = found.Rows.Value 
    Else 
     MsgBox "Nothing found for id: " & id.Value 
    End If 
End Sub 
関連する問題