powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Visio Excel
2 сообщений из 2, страница 1 из 1
Visio Excel
    #34256038
jjj676
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Подскажите плик как сделать следующее:
Все нижеперечисленное нужно сделать через VBA обращаясь к Excel непосредственно из Visio.
Из Visio нужно открыть файл Excel (Допустим c:\111.xls)
Сделать активной ячейку "A1"
Присвоить переменной "x" значение из ячейки "А1"
что то типа x=Range("A1")
а потом Сместиться от ячейки А1 на x ячеек вниз, выделить данную ячейку.
а потом присвоить переменным (a,b,c) значения трёх ячеек справа от активной ячейки, т.е. что то типа:

a=ActiveCell.Offset(0, 1)
b=ActiveCell.Offset(0, 2)
c=ActiveCell.Offset(0, 3)

Вот только как всё это сделать из Visio ???

Заранее большое спасибо.
...
Рейтинг: 0 / 0
Visio Excel
    #34259988
lena_####
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле я не знаю, как там все устроено в Visio, но надеюсь, что это будет работать.
(данный вариант требует подключение объектной библиотеки Excel к проекту)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
Sub mySub1()
  Dim v_App As Excel.Application
  Dim v_Wb As Excel.Workbook
  Dim v_Sh As Excel.Worksheet
  Dim v_File As String
  Dim x, a, b, c
  
  v_File = "c:\111.xls"
  Set v_App = New Excel.Application
  Set v_Wb = v_App.Workbooks.Open(v_File)
  Set v_Sh = v_Wb.Worksheets("Лист1")
  
  v_Sh.Range("A1").Activate 'это, мне кажется, кривой способ
  x = ActiveCell
  a = ActiveCell.Offset( 0 ,  1 )
  b = ActiveCell.Offset( 0 ,  2 )
  c = ActiveCell.Offset( 0 ,  3 )
  'или
'  x = v_Sh.Range("A1")
'  a = v_Sh.Range("A1").Offset(0, 1)
'  b = v_Sh.Range("A1").Offset(0, 2)
'  c = v_Sh.Range("A1").Offset(0, 3)
  'или
'  x = v_Sh.Range("A1")
'  a = v_Sh.Range("B1")
'  b = v_Sh.Range("C1")
'  c = v_Sh.Range("D1")
  'или
'  x = v_Sh.Cells(1, 1)
'  a = v_Sh.Cells(1, 2)
'  b = v_Sh.Cells(1, 3)
'  c = v_Sh.Cells(1, 4)
  
  v_Wb.Close
  Set v_App = Nothing
End Sub

Данный вариант использует позднее связывание и не требует подключение объектной библиотеки Excel к проекту

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Sub mySub2()
  Dim v_App, v_Wb, v_Sh
  Dim v_File As String
  Dim x, a, b, c
  
  v_File = "c:\111.xls"
  Set v_App = CreateObject("Excel.Application")
  Set v_Wb = v_App.Workbooks.Open(v_File)
  Set v_Sh = v_Wb.Worksheets("Лист1")
  
  x = v_Sh.Cells( 1 ,  1 )
  a = v_Sh.Cells( 1 ,  2 )
  b = v_Sh.Cells( 1 ,  3 )
  c = v_Sh.Cells( 1 ,  4 )
  
  v_Wb.Close
  Set v_App = Nothing
End Sub
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Visio Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]