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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2010, 17:04   #1
Andrey3055
Пользователь
 
Регистрация: 27.10.2009
Сообщений: 15
По умолчанию считать последнюю строку из истории в tt1()

Привет!
Помогите, пожалуйста, записать правильно макрос:

Я сначала записываю данные в историю

'запоминаем изменения из TextBox'ов
For i = 1 To 36
tt2(i - 1) = CSng(UserForm1.Controls("TextBox" & i))
Next i

'произошли ли изменения в TextBox'ах
For i = 0 To 35
If tt1(i) <> tt2(i) Then Exit For
Next i
If i = 36 Then GoTo Конец 'т.е. если изм-ий нет


With Application.Workbooks.Open(Filename :=ThisWorkbook.Path & "\История изменения параметров.xls")
With Sheets(1)
'записываем историю
j = .Cells(Rows.Count, 4).End(xlUp).Row + 1
For i = 1 To 36
.Cells(j, i + 3) = tt2(i - 1)
Next i
End With
.Close saveChanges:=True
End With


А теперь мне нужно считать самую последнюю строчку из истории и записать в tt1() и потом циклом заполнить боксы, типа
.Controls("TextBox" & i) = tt1(i - 1)

Помогите правильно записать, пожалуйста!
Andrey3055 вне форума Ответить с цитированием
Старый 25.05.2010, 18:01   #2
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Андрей, почему Ваш пример - один в один с примером Натальи? Ну, не важно.
Если добавить на форму кнопку "История", то можно так (без массива, наверное, даже быстрее):
Код:
Private Sub btnИстория_Click()
Dim j As Long
With Application.Workbooks.Open(Filename:=ThisWorkbook.Path & "\Книга1.xls")
    With Sheets(2) 'у меня это осталось на 2-м листе
    j = .Cells(Rows.Count, 1).End(xlUp).Row
        For i = 1 To 36
            UserForm1.Controls("TextBox" & i) = .Cells(j, i + 3).Value
        Next i
    End With
.Close SaveChanges:=False
End With
End Sub
nilem вне форума Ответить с цитированием
Старый 25.05.2010, 18:17   #3
Andrey3055
Пользователь
 
Регистрация: 27.10.2009
Сообщений: 15
По умолчанию

Спасибо! Понял принцип! А такой же пример, как у Натальи,так как искал принцип решения подобной задачи,но не нашел, нашел только задачу Натальи,правда там решение этого вопроса не был выложено,а придумывать свой пример на эту тему не хотел, но принцип нужен,то скопировал у нее! Извините,пожалуйста!
Andrey3055 вне форума Ответить с цитированием
Старый 25.05.2010, 18:32   #4
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Извиняться не за что. Просто было интересно.
nilem вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как узнать последнюю строку и последний столбец в xls таблице? Аццкий прогер Общие вопросы Delphi 7 06.12.2010 12:58
Как найти последнюю строку Листа? Stilet Microsoft Office Excel 6 13.10.2009 14:33
Удалить последнюю строку из файла Flame_of_Death Помощь студентам 6 21.07.2009 13:48
организация поиска - не ищет последнюю строку в StringGrid Xeon332 Общие вопросы Delphi 5 13.11.2008 04:36
Нужно найти последнюю строку в файле с информацией и узнать ее адрес Мефистофель Microsoft Office Excel 2 10.06.2007 16:03