Hide & UnHide

Collapse
این تاپیک قفل است.
X
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • میثم مقدم نیا

    • 2017/03/23
    • 558
    • 41.00

    [حل شده] Hide & UnHide

    سلام
    من با کد زیر در This Workbook شیت هام را مخفی کردم
    کد PHP:
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim sht As Worksheet
    For Each sht In ActiveWorkbook.Worksheets
        visibles 
    = Array("نخست")
        If 
    IsError(Application.Match(sht.Name, visibles, False)) Then
            sht
    .Visible = xlSheetHidden
        
    Else
            
    sht.Visible = xlSheetVisible
        End 
    If
    Next sht
    End Sub 
    با کد زیر هم به شیت های دیگم دسترسی دارم
    کد PHP:
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    'Updated by Extendoffice 20180822
    Dim xArray, xAValue As Variant
    Dim xFNum As Long
    Dim xStr, xStrRg, xStrSheetName As String
    '
    xRgArray = Array("A1;1", "A2;11", "A3;21", "B1;2")
    xRgArray = Array("A2;Sheet1", "A3;Sheet2", "A4;Sheet3", "A5;Sheet4", "A6;Sheet5", "A7;Sheet6", "A8;Sheet7", "A9;Sheet8", "A10;Sheet9", "A11;Sheet10")
    On Error Resume Next

    Sheet5
    .Visible = True

    Sheets
    .Visible = xlSheetVisible
    For xFNum = LBound(xRgArray) To UBound(xRgArray)
    xStr = ""
    xStr = xRgArray(xFNum)
    xAValue = ""
    xAValue = Split(xStr, ";")
    xStrRg = ""
    xStrRg = xAValue(0)
    xStrSheetName = ""
    xStrSheetName = xAValue(1)
    If 
    Not Intersect(Target, Range(xStrRg)) Is Nothing Then
    Sheets
    (xStrSheetName).Activate
    End 
    If
    Next
    End Sub 
    یه مشکلی که من در اینجا دارم نمایش شیت های پنهان هست

    با کد دستوری
    کد PHP:
    Sheet5.Visible = True 
    رو هر یک از کلید هام کلیک میکنم به شیت پنج میرند
    من 10 تا شیت بجز شیت اصلی دارم برای هر شیت هم یه سلول تعریف کردم که با دابل کلیک روی اون به شیت مورد نظر بره
    فایل پیوست را ببنید و راهنماییم کنید
    فایل های پیوست شده
    [HR][SIZE=5][COLOR="#0000FF"][FONT=Times New Roman][B] در سرزمینی کہ نتوان مردانہ زیست ، مردانہ مردن بهتر از این زندگیست [/B][/FONT][/COLOR][/SIZE][/HR]
  • majid_mx4

    • 2012/06/25
    • 699

    #2
    با سلام

    لطفا کد دسترسی را به شکل زیر تغییر دهید.

    کد:
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    'Updated by Extendoffice 20180822
    Dim xArray, xAValue As Variant
    Dim xFNum As Long
    Dim xStr, xStrRg, xStrSheetName As String
    'xRgArray = Array("A1;1", "A2;11", "A3;21", "B1;2")
    xRgArray = Array("A2;Sheet1", "A3;Sheet2", "A4;Sheet3", "A5;Sheet4", "A6;Sheet5", "A7;Sheet6", "A8;Sheet7", "A9;Sheet8", "A10;Sheet9", "A11;Sheet10")
    On Error Resume Next
    
    
    
    Sheets.Visible = xlSheetVisible
    For xFNum = LBound(xRgArray) To UBound(xRgArray)
    xStr = ""
    xStr = xRgArray(xFNum)
    xAValue = ""
    xAValue = Split(xStr, ";")
    xStrRg = ""
    xStrRg = xAValue(0)
    xStrSheetName = ""
    xStrSheetName = xAValue(1)
    If Not Intersect(Target, Range(xStrRg)) Is Nothing Then
    [COLOR=#ff0000]Sheets(xStrSheetName).Visible = True[/COLOR]
    Sheets(xStrSheetName).Activate
    End If
    Next
    End Sub
    توضیح : در کد قبلی شما درخواست نمایش شیت 5 را در صدردستورات گذاشته بودید و به دستورات زیر اعلام نمایش شیت بر اساس خانه انتخابی و آرایه شیت ها ر ا نداده بودید لذا اضافه کردن دستور
    کد:
    Sheets(xStrSheetName).Visible = True
    جهت استفاده از آرایه و نمایش شیت ها باید اضافه میشد.

    پایدار باشید میر

    کامنت

    چند لحظه..