2015-05-23 2 views
1
Private Sub cmdAdd_Click() 
Dim iRow As Long 
Dim ws As Worksheet 
Set ws = ActiveSheet 

'find first empty row in sheet 
iRow = .Range("A1").End(xlDown).Row + 1 
+0

Это довольно s реали. Что вы пробовали? –

ответ

1

Вот что-то, чтобы начать Вас:

Sub SheetPicker() 
    Dim msg As String 
    Dim sh As Worksheet 
    Dim V As Variant 

    msg = vbCrLf 
    For Each sh In Sheets 
     msg = msg & sh.Name & vbCrLf 
    Next sh 
    Do 
     V = Application.InputBox(prompt:="Please pick from:" & msg, Type:=2) 
     If V = False Then 
     Exit Sub 
     End If 
     If Exists(CStr(V)) Then 
     Sheets(V).Select 
     Exit Sub 
     End If 
    Loop 
End Sub 

Function Exists(s As String) As Boolean 
    Dim sh As Worksheet 
    Exists = False 
    For Each sh In Sheets 
     If sh.Name = s Then 
     Exists = True 
     Exit Function 
     End If 
    Next sh 
End Function 

EDIT # 1:

Эта версия позволяет избежать скрытых листов:

Sub SheetPicker() 
    Dim msg As String 
    Dim sh As Worksheet 
    Dim V As Variant 

    msg = vbCrLf 
    For Each sh In Sheets 
     If sh.Visible = xlSheetVisible Then 
     msg = msg & sh.Name & vbCrLf 
     End If 
    Next sh 
    Do 
     V = Application.InputBox(prompt:="Please pick from:" & msg, Type:=2) 
     If V = False Then 
     Exit Sub 
     End If 
     If Exists(CStr(V)) Then 
     Sheets(V).Select 
     Exit Sub 
     End If 
    Loop 
End Sub 

Function Exists(s As String) As Boolean 
    Dim sh As Worksheet 
    Exists = False 
    For Each sh In Sheets 
     If sh.Visible = xlSheetVisible Then 
     If sh.Name = s Then 
      Exists = True 
      Exit Function 
     End If 
     End If 
    Next sh 
End Function 
+1

Вы забыли добавить 'Sheets (V) .Visible = xlSheetVisible' перед' Sheets (V) .Select' :) Код будет выходить из строя, если лист скрыт :) –

+0

@SiddharthRout Хорошая точка! ..................... перекодировано, чтобы избежать Скрытых листов. –

+0

Но зачем его избегать? Что делать, если пользователь хочет выбрать скрытый лист? –

Смежные вопросы