Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2010, 16:02   #1
kipish_lp
Форумчанин
 
Регистрация: 25.11.2009
Сообщений: 113
По умолчанию Как вывести данные активной строки excel?

Тут у вас на форуме нашла код, который мне очень подошел.

Sub Макрос1()

Dim sFIO As String, objWord As Word.Application, sDolg As String, A As Integer
Dim objDoc As Word.Document, sFile As String, sOtd As String, iOklad As Integer

'For a = 1 To 3
Range("C2").Select
sOtd = ActiveCell.Value
Range("A2").Select
sFIO = ActiveCell.Value
Range("B2").Select
sDolg = ActiveCell.Value
Range("D2").Select
iOklad = ActiveCell.Value
'Next A

sFile = "C:\Documents and Settings\Администратор\Рабочий стол\Тарифы\Test1.dot"
Set objWord = New Word.Application
Set objDoc = objWord.Documents.Open(sFile)
With objWord
.Visible = True
.Selection.InsertAfter Format(Now, "Long date")
End With
objDoc.Bookmarks("FIO").Select
objWord.Selection.InsertAfter sFIO
objDoc.Bookmarks("Dolg").Select
objWord.Selection.InsertAfter sDolg
objDoc.Bookmarks("Otd").Select
objWord.Selection.InsertAfter sOtd
objDoc.Bookmarks("Oklad").Select
objWord.Selection.InsertAfter iOklad
objWord.ActiveDocument.SaveAs "C:\Documents and Settings\Администратор\Рабочий стол\Тарифы\TestDoc", doc

Set objDoc = Nothing
Set objWord = Nothing
End Sub

Но когда запускается макрос, всегда выводится первая строка. Даже если делаешь активной другую строку, после запуска макроса активной становится 1-я строка. Как можно сделать, чтобы выводилась активная строка?
kipish_lp вне форума Ответить с цитированием
Старый 25.02.2010, 17:06   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

а попробуйте вместо этого:
Цитата:
'For a = 1 To 3
Range("C2").Select
sOtd = ActiveCell.Value
Range("A2").Select
sFIO = ActiveCell.Value
Range("B2").Select
sDolg = ActiveCell.Value
Range("D2").Select
iOklad = ActiveCell.Value
'Next A
написать так:
Код:
Dim r as long

r = ActiveCell.Row
sOtd = cells(r,3).value
sFIO = cells(r,1).value
sDolg = cells(r,2).value
iOklad = cells(r,4).value
остальное без изменений
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 25.02.2010, 17:07   #3
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

макрос бестолковый. не видя файла нельзя
Dophin вне форума Ответить с цитированием
Старый 25.02.2010, 17:16   #4
kipish_lp
Форумчанин
 
Регистрация: 25.11.2009
Сообщений: 113
По умолчанию

Большое спасибо! А код хоть и бестолковый, но работает как надо. Просто по другому не знаю как.
kipish_lp вне форума Ответить с цитированием
Старый 25.02.2010, 17:18   #5
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

Все Select в макросах абсолютно не нужны (за очень редким исключением).

А вообще да. Если это глупо, но работает - значит это не глупо )
Dophin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать адрес активной строки в другую таблицу parsn Microsoft Office Excel 2 04.01.2010 23:32
Данные в ячейке из активной ячейки. ru3000 Microsoft Office Excel 1 28.07.2009 05:29
Строки. Как вывести часть строки? Anfall Общие вопросы Delphi 7 26.02.2009 09:10
Как с помощью формул можно сравнить и вывести данные kutt Microsoft Office Excel 2 24.09.2008 17:05
Как вытащить данные из Excel в бд dephi, а потом (после работы с данными) сформировать новый файл excel. Геля БД в Delphi 1 10.04.2007 15:11