نوشته اصلی توسط
rasools13
یک فایل پیوست کنید
متاسفانه بدلیل اینکه تغییرات متعددی روی فایل انجام دادم و اونا رو ذخیره نکردم حساب کار از دستم در رفته، اما در نهایت 2 راه حل برای مشکلم پیدا کردم که به اشتراک میزارم
کد:
Private Sub cboName_Change()
Dim EName As String
Dim RowNum As Long, ColNum As Long
EName = Me.cboName.Text
If EName <> "" Then
With Application.WorksheetFunction
RowNum = .Match(EName, Sheets("sheet1").Range("A2:A100"), 0)
ColNum = GetMonthNum(Me.cboMonth.Text) + 3
txtProduct.Value = Sheets("sheet1").Cells(RowNum + 1, ColNum)
End With
End If
End Sub
Private Function GetMonthNum(Mth As String) As Long
Select Case Mth
Case "January": GetMonthNum = 1
Case "February": GetMonthNum = 2
Case "March": GetMonthNum = 3
Case "April": GetMonthNum = 4
Case "May": GetMonthNum = 5
Case "June": GetMonthNum = 6
Case "July": GetMonthNum = 7
Case "August": GetMonthNum = 8
Case "September": GetMonthNum = 9
Case "October": GetMonthNum = 10
Case "November": GetMonthNum = 11
Case "December": GetMonthNum = 12
End Select
End Function
و راه حل دوم که خلاصه تره اما فقط زمانی که اسامی ماه ها به میلادی باشه جواب میده مثل January"" یا "Jan" . اگر بجای اسم ماه شماره اون نوشته بشه مثل "1 "یا اسامی غیر میلادی مثل "Farvardin" یا "فروردین" کارنمیکنه
کد:
Private Sub cboName_Change()
Dim EName As String
Dim RowNum As Long, ColNum As Long
EName = Me.cboName.Text
If EName <> "" Then
With Application.WorksheetFunction
RowNum = .Match(EName, Sheets("sheet1").Range("A2:A100"), 0)
ColNum = Month(DateValue("1/" & Me.cboMonth.Text & "/2017")) + 3
txtProduct.Value = Sheets("sheet1").Cells(RowNum + 1, ColNum)
End With
End If
End Sub
علاقه مندی ها (Bookmarks)