powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / запись данных в ячейку
20 сообщений из 20, страница 1 из 1
запись данных в ячейку
    #37371576
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При открытии файла он скачивает данные с веб-сайта, после чего обрабатывает их. Мне необходимо, чтобы каждый раз при открытии файла (а происходить это будет автоматом раз в день) он записывал обработанные данные на отдельный лист и ставил рядом дату записи. К сожалению я не очень хорошо разбираюсь с VBA. Заранее спасибо!
...
Рейтинг: 0 / 0
запись данных в ячейку
    #37371578
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lbppbПри открытии файла он скачивает данные с веб-сайта, после чего обрабатывает их.все вот это уже сделано?
...
Рейтинг: 0 / 0
запись данных в ячейку
    #37371638
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProlbppbПри открытии файла он скачивает данные с веб-сайта, после чего обрабатывает их.все вот это уже сделано?

Да, там пока ничего сложно нет, это начало. Файл прилагаю.
...
Рейтинг: 0 / 0
запись данных в ячейку
    #37371676
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну как-то так:
Sub Historical_data
Код: 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.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
Sub Historical_data()

Dim NewS As Worksheet
Set NewS = Worksheets.Add(, Worksheets(Worksheets.Count))
NewS.Cells( 1 ,  2 ) = "Рядом дата:"
NewS.Cells( 1 ,  3 ) = Now


    Sheets("Timing").Select
    Range("B1").Select
    Application.CutCopyMode = False
    Selection.Copy
    NewS.Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("C2").Select
    Sheets("Timing").Select
    Range("B2").Select
    Application.CutCopyMode = False
    Selection.Copy
    NewS.Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("D2").Select
    Sheets("Timing").Select
    Range("B3").Select
    Application.CutCopyMode = False
    Selection.Copy
    NewS.Select
    Range("D2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("E2").Select
    Sheets("Timing").Select
    Range("B4").Select
    Application.CutCopyMode = False
    Selection.Copy
    NewS.Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("F2").Select
    Sheets("Timing").Select
    Range("B5").Select
    Application.CutCopyMode = False
    Selection.Copy
    NewS.Select
    Range("G2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub
...
Рейтинг: 0 / 0
запись данных в ячейку
    #37371710
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно чуть короче:
Sub Historical_data1()
Dim NewS As Worksheet
Set NewS = Worksheets.Add(, Worksheets(Worksheets.Count))
NewS.Cells(1, 2) = "Рядом дата:"
NewS.Cells(1, 3) = Date
With Sheets("Timing")
NewS.[a1].Value = .[b1].Value
NewS.[c2].Value = .[b2].Value
NewS.[d2].Value = .[b3].Value
NewS.[e2].Value = .[b4].Value
NewS.[g2].Value = .[b5].Value
End With
End Sub
...
Рейтинг: 0 / 0
запись данных в ячейку
    #37371715
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kuklpМожно чуть короче:
Может и можно, я в код автора вообще не вникал
просто дописал четыре своих строчки и сделал автозамену его целевого листа
...
Рейтинг: 0 / 0
запись данных в ячейку
    #37371750
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

А как сделать так, чтобы не добалять новые листы, а все делать на одном?
...
Рейтинг: 0 / 0
запись данных в ячейку
    #37371776
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня получился вот такой код, но нужно чтобы данные записывались каждый раз, когда процедура вызыывается на строчку ниже.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub Historical_data()

Dim His As Worksheet
Set His = Sheets("Historical")

His.Cells( 2 ,  1 ) = Now

With Sheets("Timing")

His.[b2].Value = .[b1].Value
His.[c2].Value = .[b2].Value
His.[d2].Value = .[b3].Value
His.[e2].Value = .[b4].Value
His.[f2].Value = .[b5].Value

End With
End Sub
...
Рейтинг: 0 / 0
запись данных в ячейку
    #37371843
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заведите переменную, учитывающую последнюю запись в "лог истории" в ячейке отдельного листа. Скажем, "Константы!СчётчикИстории"
И процедуре передавайте Range = адрес первой ячейки для записи...
Или перед каждой записью в "лист хистори" процедура должна искать последнюю запись. Методом половинного деления.
...
Рейтинг: 0 / 0
запись данных в ячейку
    #37371845
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как-то так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub Historical_data()

Dim His As Worksheet, r As Integer, i As Integer
Set His = Sheets("Historical")
r = His.Columns( 2 ).End(xlDown).Row +  1 
His.Cells( 2 ,  1 ) = Now

With Sheets("Timing")
  For i =  1  To  5 
    His.Cells(r, i +  1 ).Value = .Cells(i,  2 ).Value
  Next
End With

End Sub
...
Рейтинг: 0 / 0
запись данных в ячейку
    #37371847
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTMпроцедура должна искать последнюю запись. Методом половинного деления.
Вы со скукотищей меня сегодня сильно удивляете. .End(xlDown) никто не отменял :)
...
Рейтинг: 0 / 0
запись данных в ячейку
    #37371878
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro+
AndreTMпроцедура должна искать последнюю запись. Методом половинного деления.
Вы со скукотищей меня сегодня сильно удивляете. .End(xlDown) никто не отменял :)Ну так готовимся к дню сисадмина... я уже начал

А если серьёзно - то лучше контролировать записи полностью, а не то, что будет импортировано...
...
Рейтинг: 0 / 0
запись данных в ячейку
    #37372972
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне нужна была привязка именно ко дню, в общем сделал так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub Historical_data()

Dim His As Worksheet, r As Integer, c As Integer
Set His = Sheets("Historical")
r = Now -  40751 
His.Cells(Now -  40751 ,  1 ) = Now

With Sheets("Timing")
  For c =  1  To  5 
    His.Cells(r, c +  1 ).Value = .Cells(c,  2 ).Value
  Next
End With

End Sub
...
Рейтинг: 0 / 0
запись данных в ячейку
    #37373010
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lbppbчтобы каждый раз при открытии файла (а происходить это будет автоматом раз в день) он записывал обработанные данные на отдельный лист lbppbсделать так, чтобы не добалять новые листы , а все делать на одном?lbppbнужно чтобы данные записывались каждый раз , когда процедура вызыывается на строчку ниже lbppbМне нужна была привязка именно ко дню
ну и кто теперь тебе помогать будет после этого?
...
Рейтинг: 0 / 0
запись данных в ячейку
    #37373080
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще вопрос. Планировщик задач настроен открывать файл в 23:00. Какое-то время уйдет на закачку данных с сайта. После чего мне нужно, чтобы запускалась моя процедура. После чего сохранение и файл закрывается. На какое событие повесить можно повесить запуск процедуры? AfterXmlImport не срабатывает...
...
Рейтинг: 0 / 0
запись данных в ячейку
    #37373086
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Prolbppbчтобы каждый раз при открытии файла (а происходить это будет автоматом раз в день) он записывал обработанные данные на отдельный лист lbppbсделать так, чтобы не добалять новые листы , а все делать на одном?lbppbнужно чтобы данные записывались каждый раз , когда процедура вызыывается на строчку ниже lbppbМне нужна была привязка именно ко дню
ну и кто теперь тебе помогать будет после этого?

К сожалению задача оттачивалась по ходу исполнения, не моя прихоть...
...
Рейтинг: 0 / 0
запись данных в ячейку
    #37373197
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lbppbзакачку данных с сайтаlbppb AfterXmlImport не срабатывает...в файле кроме Sub Historical_data я ничего не нашел.
...
Рейтинг: 0 / 0
запись данных в ячейку
    #37373244
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Prolbppbзакачку данных с сайтаlbppb AfterXmlImport не срабатывает...в файле кроме Sub Historical_data я ничего не нашел.

Выкладваю текущую версию файла.
...
Рейтинг: 0 / 0
запись данных в ячейку
    #37373260
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю, каким образом тут происходит автоматическое обновление, это уже какие-то эксельные приблуды, так что дальше я пас.
...
Рейтинг: 0 / 0
запись данных в ячейку
    #37373276
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProНе знаю, каким образом тут происходит автоматическое обновление, это уже какие-то эксельные приблуды, так что дальше я пас.

В любом случае БОЛЬШОЕ СПАСИБО!
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / запись данных в ячейку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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