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.NamevisiblesFalse)) Then
            sht
    .Visible xlSheetHidden
        
    Else
            
    sht.Visible xlSheetVisible
        End 
    If
    Next sht
    End Sub 
    با کد زیر هم به شیت های دیگم دسترسی دارم
    کد PHP:
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As RangeCancel 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(xRgArrayTo UBound(xRgArray)
    xStr ""
    xStr xRgArray(xFNum)
    xAValue ""
    xAValue Split(xStr";")
    xStrRg ""
    xStrRg xAValue(0)
    xStrSheetName ""
    xStrSheetName xAValue(1)
    If 
    Not Intersect(TargetRange(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
    جهت استفاده از آرایه و نمایش شیت ها باید اضافه میشد.

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

    کامنت

    چند لحظه..