PDA

Показать полную графическую версию : [решено] Поиск активной ячейки в другом файле и открытие её содержимого


blackeangel
25-12-2015, 12:09
Вот код

Public ipage As Integer
Sub pp()
Dim n As String
Dim m As String
Dim z As Range
Dim s
m = Cells(ActiveCell.Row, ActiveCell.Column) 'берем активную ячейку
n = "N:\_7_Все_карточки\Карточки.xlsm"
Set s = GetObject(n)
'ищем активную ячейку взятую с активного листа в другом открытом файле
Set z = s.Worksheets(1).Cells.Find(What:=m, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows)
ipage = 30
arrStr = Split(Cells(z.Row, ipage), "!")
x = 0
'отрываем найденое
x = Shell("C:\Program Files\IrfanView\i_view32.exe " & "n:\_8_Все_tif\" & arrStr(0), vbNormalFocus)
If x > 0 Then Exit Sub
x = Shell("C:\Program Files\XnView\xnview.exe " & "n:\_8_Все_tif\" & arrStr(0))
End Sub

Ругается ошибкой 9 на строку

x = Shell("C:\Program Files\IrfanView\i_view32.exe " & "n:\_8_Все_tif\" & arrStr(0), vbNormalFocus)
Помогите пожалуйста исправить

Iska
25-12-2015, 12:54
Set s = GetObject(n) »
А это зачем? Используйте обычное «Application.Workbooks.Open(…)/Close()».

Ругается ошибкой 9 на строку
x = Shell("C:\Program Files\IrfanView\i_view32.exe " & "n:\_8_Все_tif\" & arrStr(0), vbNormalFocus)»
Попробуйте так:
x = Shell("""C:\Program Files\IrfanView\i_view32.exe"" " & """n:\_8_Все_tif\" & arrStr(0) & """", vbNormalFocus)
Судя по коду ошибки, у Вас нет arrStr(0). Скорее всего, потому, что значение ячейки «Cells(z.Row, ipage)» — пустое.

blackeangel
25-12-2015, 15:03
Проблема решена

arrStr = Split(s.Worksheets(1).Cells(z.Row, ipage), "!")

В этом была ошибка-брал значение не из той книги

Set s = GetObject(n) »
А это зачем?
Это чтоб открылся файл без визуализации

Iska
25-12-2015, 15:29
Это чтоб открылся файл без визуализации »
Application.ScreenUpdating Property (Excel) (https://msdn.microsoft.com/en-us/library/office/ff193498.aspx).




© OSzone.net 2001-2012