2016-08-18 61 views
0

如何添加顯示用戶表單上的上一個和下一個條目的按鈕很難?網上有一堆資源。我已經嘗試了很多,但沒有去。我試圖改編這個網站提到的解決方案之一,我失敗了。 :(Excel VBA用戶表單下一個和上一個+第一個和最後一個條目

在列A中有項目編號(比如說180)它可以按照180或只要它被獲得,我想添加上一個和下一個按鈕,然後按鈕顯示第一個和最後一個。進入

我的代碼是:

Private Sub UserForm_Initialize() 

Dim k As Long, j As Long 
Dim rng As Range 
Set rng = Worksheets("BİLGİLER").Range("A180") 

k = 0: j = 1 

vyakinligi.Value = rng.Offset(k).Value 
vadsoyad.Value = rng.Offset(k, j).Value: j = j + 1 
vmeslegi.Value = rng.Offset(k, j).Value: j = j + 1 
visadresi.Value = rng.Offset(k, j).Value: j = j + 1 
vceptel.Value = rng.Offset(k, j).Value: j = j + 1 

End Sub 

'~~> Next Button 
Private Sub CommandButton7_Click() 
k = k + 1: j = 1 

If k > (Sheets("BİLGİLER").Rows.Count - 4) Then 
    MsgBox "Max rows Reached" 
    Exit Sub 
End If 

vyakinligi.Value = rng.Offset(k).Value 
vadsoyad.Value = rng.Offset(k, j).Value: j = j + 1 
vmeslegi.Value = rng.Offset(k, j).Value: j = j + 1 
visadresi.Value = rng.Offset(k, j).Value: j = j + 1 
vceptel.Value = rng.Offset(k, j).Value: j = j + 1 

End Sub 


'~~> Previous Button 
Private Sub CommandButton8_Click() 
k = k - 1: j = 1 

If k < 0 Then 
    MsgBox "1st Row Reached" 
    Exit Sub 
End If 

vyakinligi.Value = rng.Offset(k).Value 
vadsoyad.Value = rng.Offset(k, j).Value: j = j + 1 
vmeslegi.Value = rng.Offset(k, j).Value: j = j + 1 
visadresi.Value = rng.Offset(k, j).Value: j = j + 1 
vceptel.Value = rng.Offset(k, j).Value: j = j + 1 

End Sub 

我有什麼錯,我應該怎麼做才能添加按鈕和顯示上一頁,下一頁,第一和用戶窗體中的最後一項

+0

我相信這段代碼要求'j','k'和'​​rng'都被定義爲全局變量。你在'UserForm_Initialize()'裏面定義它們。嘗試將以'Dim'開頭的2行移動到文件頂部。 – Phylogenesis

+0

我會盡力的。感謝隊友...我累了:有或沒有這些線我得到錯誤:對象需要在vyakinligi.Value = rng.Offset(k).Value – murathoca

回答

0

?我終於設法運行(以適應)代碼,我會把它放在這裏以防萬一使用它。

在常規選項卡:

Dim Data As Variant 
Dim LastRow As Long 
Dim r As Long 

上一步和下一步按鈕:

Private Sub CommandButton7_Click() 
RangeRow xlNext 
End Sub 

Private Sub CommandButton8_Click() 
RangeRow xlPrevious 
End Sub 

爲用戶窗體的初始化部分:

With Sheets("BİLGİLER") 'change the name as you wish 
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row 

Data = .Range("A1:AZ" & LastRow).Value 'data range 

End With 

r = ActiveCell.Row - 1 

RangeRow r 

該子程序代碼:

Sub RangeRow(ByVal Direction As Long) 
r = IIf(Direction = xlPrevious, r - 1, r + 1) 
If r < 2 Then r = 2 
If r > LastRow Then r = LastRow 

With Me 

.sira.Text = Data(r, 1) 
.tckn.Text = Data(r, 2) 
.oadsoyad.Text = Data(r, 3) 
.cinsiyet.Text = Data(r, 4) 
.dyeri.Text = Data(r, 5) 
.dyili.Text = Data(r, 6) 
.ncsn.Text = Data(r, 7) 
.babaadi.Text = Data(r, 8) 
.anneadi.Text = Data(r, 9) 
.kangrb.Text = Data(r, 10) 
.oceptel.Text = Data(r, 11) 
.oevadresi.Text = Data(r, 12) 

End With 
End Sub 

此代碼從表格上的相關行獲取信息,並填充usefrorm上的用戶窗體文本框和組合框。

現在該放入第一個和最後一個條目的按鈕。有什麼建議麼?

相關問題