{quote}{login=R Dmitry}{date=17.09.2010 06:49}{thema=Re: Re: }{post}Sub Hotkey()
'ful
' Замена горячей клавиши R Dmitry
' При условии что в названии паки нет "'!"
' Сочетание клавиш: любое
'
Dim Ph As String, str As String, sh As String, adCel As String
Dim Ofl As Long, NumP As Long, NumP2 As Long, dp As Byte
str = ActiveCell.Formula
On Error Resume Next
If str = "" Then Exit Sub
Ofl = InStrRev(str, ":"): NumP = InStrRev(str, "]")
If NumP <> 0 Then
Ph = Replace(Mid(str, 3, InStr(str, "]") - 3), "[", ""): dp = 0
Else
Ph = ActiveWorkbook.Name: dp = 1
End If
If Ofl <> 0 Then
NumP2 = InStrRev(str, "'!"): sh = Mid(str, NumP + dp + 1, NumP2 - NumP - 1): adCel = (Mid(str, NumP2 + 2))
Workbooks.Open Filename:=Ph: Application.Goto Reference:=Sheets(sh).Range(adCel)
Else
NumP2 = InStrRev(str, "!")
If NumP2 = 0 Then
Application.Goto Reference:=Range(Mid(str, 2))
Else
sh = Mid(str, NumP + 1 + dp, NumP2 - NumP - 1 - dp): adCel = (Mid(str, NumP2 + 1))
Application.Goto Reference:=Workbooks(Ph).Sheets(sh).Range(adCel)
End If
End If
End Sub{/post}{/quote}
Спасибо Вам ОГРОМНОЕ ещё раз!!! Заменил код на этот - работает.
P.S. Но не под любое сочетание...поставил себе на Ctrl+я - так удобнее. Пробовал поставить привычный Ха, но работать отказывается - видимо глюк...
'ful
' Замена горячей клавиши R Dmitry
' При условии что в названии паки нет "'!"
' Сочетание клавиш: любое
'
Dim Ph As String, str As String, sh As String, adCel As String
Dim Ofl As Long, NumP As Long, NumP2 As Long, dp As Byte
str = ActiveCell.Formula
On Error Resume Next
If str = "" Then Exit Sub
Ofl = InStrRev(str, ":"): NumP = InStrRev(str, "]")
If NumP <> 0 Then
Ph = Replace(Mid(str, 3, InStr(str, "]") - 3), "[", ""): dp = 0
Else
Ph = ActiveWorkbook.Name: dp = 1
End If
If Ofl <> 0 Then
NumP2 = InStrRev(str, "'!"): sh = Mid(str, NumP + dp + 1, NumP2 - NumP - 1): adCel = (Mid(str, NumP2 + 2))
Workbooks.Open Filename:=Ph: Application.Goto Reference:=Sheets(sh).Range(adCel)
Else
NumP2 = InStrRev(str, "!")
If NumP2 = 0 Then
Application.Goto Reference:=Range(Mid(str, 2))
Else
sh = Mid(str, NumP + 1 + dp, NumP2 - NumP - 1 - dp): adCel = (Mid(str, NumP2 + 1))
Application.Goto Reference:=Workbooks(Ph).Sheets(sh).Range(adCel)
End If
End If
End Sub{/post}{/quote}
Спасибо Вам ОГРОМНОЕ ещё раз!!! Заменил код на этот - работает.
P.S. Но не под любое сочетание...поставил себе на Ctrl+я - так удобнее. Пробовал поставить привычный Ха, но работать отказывается - видимо глюк...