[英]Excel VBA - Find string in column and insert data in that row
我試圖弄清楚如何使用excel掃描表中的特定數字,為示例起見,數字為50。 當我的代碼在表中找到數字50時,我想將該行設置為50,並在其右側插入一些用戶定義的文本。 然后,我已經設置了各種各樣的VLOOKUP,MATCH和IFERROR函數,這些函數可以從那里開始工作。 但是我現在有點麻煩。 我正在使用Userform插入數據。 上下文是學生注冊系統,將顯示學生ID,並且當用戶選擇一門課程時,該課程ID將自動分配給該學生。
我使用類似的代碼將數據條目分配給下一個空閑行。 但是我希望這將數據條目分配給特定的行,而不僅僅是下一個空閑的行。 我以前使用的代碼如下。
Dim LR As Integer, Master As Worksheet Set Master =
ThisWorkbook.Worksheets("Student")
LR = 6
If LR = 6 And Cells(LR, "A").Value = "" Then
LR = LR
Else
LR = LR + 1
If Cells(LR, "A").Value = "" Then
Else
Do Until Cells(LR, "A").Value = ""
LR = LR + 1
Loop
End If
End If
Master.Cells(LR, "A").Value = (Me.txtID)
Master.Cells(LR, "B").Value =(Me.txtFore)
Master.Cells(LR, "C").Value = (Me.txtSur)
Master.Cells(LR, "D").Value = (Me.txtAddress)
Master.Cells(LR, "E").Value = (Me.cmbSex)
Unload UserForm1
如您所見,該代碼成功地將數據條目分配給了下一個可用行,然后使用LR(最后一行)循環關閉了表單。 我發現效果很好。
任何幫助將不勝感激!
編輯
這是完成的代碼,所有工作正常,多虧Paul!
Dim FR As Integer, Course As Worksheet, CourseCode, StudentID As String
Set Course = ThisWorkbook.Worksheets("Course")
Set Enrol = ThisWorkbook.Worksheets("Enrolment")
StudentID = txtID
CourseCode = cmbCourse
FR = 6
Dim lRow As Long
If FR = 6 And Course.Cells(FR, "B").Value = CourseCode Then
FR = FR
Else
FR = FR + 1
If Course.Cells(FR, "B").Value = CourseCode Then
Else
Do Until Course.Cells(FR, "B").Value = CourseCode
FR = FR + 1
Loop
End If
End If
lRow = Enrol.Range("A6:A45").Find(StudentID).Row
Select Case CourseCode
Case "Animal Care"
CourseCode = "9841"
Case "Animation"
CourseCode = "3320"
Case "Art"
CourseCode = "6387"
Case "Biology"
CourseCode = "4685"
Case "Business Studies"
CourseCode = "5879"
Case "Calculus"
CourseCode = "4123"
Case "Chemistry"
CourseCode = "1586"
Case "Computing"
CourseCode = "3669"
Case "Dance"
CourseCode = "4521"
Case "Design and Tech"
CourseCode = "5478"
Case "Drama"
CourseCode = "5678"
Case "Engineering"
CourseCode = "6321"
Case "English Language"
CourseCode = "4768"
Case "English Literature"
CourseCode = "3908"
Case "Fashion Design"
CourseCode = "2477"
Case "Film Making"
CourseCode = "4489"
Case "French"
CourseCode = "2548"
Case "Functional Skills"
CourseCode = "2685"
Case "Geography"
CourseCode = "8874"
Case "German"
CourseCode = "9512"
Case "Graphic Design"
CourseCode = "5232"
Case "History"
CourseCode = "4895"
Case "Italian"
CourseCode = "6578"
Case "Japenese"
CourseCode = "5988"
Case "Korean"
CourseCode = "9874"
Case "Latin"
CourseCode = "3478"
Case "Law"
CourseCode = "2321"
Case "Mathmatics"
CourseCode = "9458"
Case "Media Studies"
CourseCode = "1589"
Case "Modern Languages"
CourseCode = "5612"
Case "Nursing"
CourseCode = "2003"
Case "Photography"
CourseCode = "2001"
Case "Physical Education"
CourseCode = "8496"
Case "Physics"
CourseCode = "8534"
Case "Religious Studies"
CourseCode = "2320"
Case "Social Studies"
CourseCode = "2301"
Case "Spanish"
CourseCode = "6217"
Case "Statistics"
CourseCode = "4895"
Case "Textiles"
CourseCode = "2240"
Case "Travel and Tourism"
CourseCode = "5698"
End Select
Enrol.Cells(lRow, "E").Value = (CourseCode)
Unload UserForm3
我發現很難理解您到底在尋找什么。 如果要查找包含值的行,可以使用“查找”功能
Dim lRow As Long
lRow = Course.Range("A1:A1000").Find(StudentID).Row
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.