2017-04-13 44 views
1

我爲已申請付款計劃的學生創建了一個數據庫。我有3張:在另一張紙上查找單元格

「查詢」 - 這是數據存儲在等待學生註冊的地方。

「確認」 - 該數據有3行標題:學生證(B1),計劃證(B2)和工資證(B3)。這是我在學生註冊後輸入附加數據的地方。

「Masterlist」 - 確認付款計劃的學生的最終名單。

這個想法是讓我手動輸入「確認」表中的數據,然後運行一個宏來搜索「查詢」表單中學生ID(B1)的值。然後,我希望它在「查詢」表中的B和E欄中複製計劃編號(B2)和工資編號(B3)。

數據填充完成後,我需要將整行轉移到「Masterlist」工作表。

我試過錄制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善良都可以通過宏記錄器訪問。下面的代碼適用於我根據您的圖紙佈局描述構建的測試工作簿。將來,請添加屏幕截圖或更好的工作簿的Dropbox 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 
相關問題