Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/43: Рейтинг темы: голосов - 43, средняя оценка - 4.81
0 / 0 / 0
Регистрация: 17.07.2020
Сообщений: 91
1
Excel

Как создать макрос для копирования, вставки, формулы и двойной вставки одних и тех же значений

24.01.2021, 21:24. Показов 7895. Ответов 7

Author24 — интернет-сервис помощи студентам
Привет, сторонники Excel.

Я благодарен за поддержку, которую вы мне оказываете. Я действительно так делаю...

Меня беспокоит одна проблема ...

Каждую неделю я получал новые обновленные данные из Excel Web и вкладки "XLS", которая вставлялась во вкладку "Extact".

Каждую неделю вкладка «Extact» получает обновленные данные в выбранных строках или диапазоне, в зависимости от времени недели и т. Д.

Смотрите фото ниже:
https://www.cyberforum.ru/atta... 1611511560

Теперь вот где все становится сложно:

На вкладке «Извлечь»: каждая строка данных представляет собой вкладку или рабочий лист, начиная с ячейки «B» и заканчивая ячейкой «I».

Я ищу макрос, который копирует данные из каждой строки и вставляет их на отдельные вкладки или листы для создания данных журнала истории.
Пожалуйста, посмотрите на поток:
https://www.cyberforum.ru/atta... 1611512230

В этом примере фотографии ниже данные на вкладке «Извлечь» скопированы из B2 в I2. Пожалуйста, обратите внимание на "I2" особенно
https://www.cyberforum.ru/atta... 1611512351

Затем данные вставляются в "10-летний США". Перейдите от B2 к G2 и данные «Цена» к I2. Обратите внимание на формулу для H2 "= F2-G2"
https://www.cyberforum.ru/atta... 1611512431

В заключение:

Как я могу

# 1 Скопируйте данные из вкладок «Извлечь» и Вставьте в отдельные вкладки, чтобы создать данные журнала истории.
# 2 Как я могу создать макрос для таких действий?
# 3 Как я могу создать макрос для создания формулы для H2 "= F2-G2"
# 4 Как я могу создать макрос, если дата уже существует, тогда он не копирует и не вставляет одни и те же данные дважды?

Пожалуйста, подайте ниже.
Миниатюры
Как создать макрос для копирования, вставки, формулы и двойной вставки одних и тех же значений   Как создать макрос для копирования, вставки, формулы и двойной вставки одних и тех же значений   Как создать макрос для копирования, вставки, формулы и двойной вставки одних и тех же значений  

Как создать макрос для копирования, вставки, формулы и двойной вставки одних и тех же значений  
Вложения
Тип файла: rar COT_TRADING_CLASSES.rar (1.34 Мб, 15 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.01.2021, 21:24
Ответы с готовыми решениями:

Макрос копирования и вставки строки с условием и последующей очисткой или изменением значений
Добрый день! Нужна помощь профессионалов! Написала макрос, который копирует строку с выделенной...

Макрос копирования/вставки данных на OOoBasic
Здравствуйте! Макрос следующий - макрос выполняет копирование данных из одного файла и их вставки в...

Макрос для вставки значений из двух именованных диапазонов
Доброго времени суток! Помогите пожалуйста вот с каким вопросом полному лошарику в макросах. ...

Макрос копирования и вставки одного из массивов по условию
Доброго времени суток форумчане. Очень нужен макрос копирования и вставки одного из примерно...

7
0 / 0 / 0
Регистрация: 17.07.2020
Сообщений: 91
25.01.2021, 10:35  [ТС] 2
Цитата Сообщение от Corrie Посмотреть сообщение
Excel Как создать макрос для копирования, вставки, формулы и двойной вставки одних и тех же значений

Как создать макрос для копирования, вставки, формулы и предотвращения двойной вставки одних и тех же значений
0
0 / 0 / 0
Регистрация: 17.07.2020
Сообщений: 91
26.01.2021, 04:22  [ТС] 3
Цитата Сообщение от Corrie Посмотреть сообщение
Как создать макрос для копирования, вставки, формулы и предотвращения двойной вставки одних и тех же значений
Пожалуйста, простите мой язык. Английский - мой родной язык. Google translate плохо справился с переводом на русский язык.

Если у вас есть какие-либо проблемы или вопросы, не стесняйтесь обращаться ко мне.
0
0 / 0 / 0
Регистрация: 17.07.2020
Сообщений: 91
26.01.2021, 21:51  [ТС] 4
Hello Excel поддерживает.

Пожалуйста, не смейтесь надо мной. Я понятия не имею, как создавать макрос самостоятельно.

Однако я знаю, как записывать макрос.

Ниже представлена ​​версия записи и файл Excel.

Моя проблема вот в чем:

Я не знаю, как запретить макросу копировать и вставлять одни и те же данные (та же дата и значения и т. Д.).

Другими словами, строки 1 и 2 на каждой вкладке не должны содержать одинаковые данные, пока данные не будут обновлены.

Как вы можете помочь мне изменить код?

Некоторым может показаться трудным понять кодировку. Поскольку мой родной язык - английский.

Пожалуйста, простите меня, если мой язык не работает. Поскольку я использую Google Translate, чтобы написать свое сообщение.

Заранее спасибо за вашу поддержку.

Visual Basic
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
Sub CopyPaste()
'
' CopyPaste Macro
'
 
'
    Sheets("10-YEAR U.S.").Select
    Rows("2:2").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("L2:AA48").Select
    Selection.Cut Destination:=Range("L1:AA47")
    Range("L1:AA47").Select
    Sheets("Extract").Select
    Range("B2:H2").Select
    Selection.Copy
    Sheets("10-YEAR U.S.").Select
    Range("A2").Select
    ActiveSheet.Paste
    Sheets("Extract").Select
    Range("I2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("10-YEAR U.S.").Select
    Range("I2").Select
    ActiveSheet.Paste
    Sheets("SILVER-XAG").Select
    Rows("2:2").Select
    Application.CutCopyMode = False
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("L2").Select
    ActiveCell.FormulaR1C1 = ""
    Range("L2:AA50").Select
    Selection.Cut Destination:=Range("L1:AA49")
    Range("L1:AA49").Select
    Sheets("Extract").Select
    Range("B3:H3").Select
    Selection.Copy
    Sheets("SILVER-XAG").Select
    Range("A2").Select
    ActiveSheet.Paste
    Sheets("Extract").Select
    Range("I3").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("SILVER-XAG").Select
    Range("I2").Select
    ActiveSheet.Paste
    Sheets("GOLD-XAU").Select
    Rows("2:2").Select
    Range("B2").Activate
    Application.CutCopyMode = False
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("L2:AA50").Select
    Selection.Cut Destination:=Range("L1:AA49")
    Range("L1:AA49").Select
    Sheets("Extract").Select
    Range("B4:H4").Select
    Selection.Copy
    Sheets("GOLD-XAU").Select
    ActiveWindow.SmallScroll Down:=-18
    ActiveWindow.SmallScroll ToRight:=-1
    Range("A2").Select
    ActiveSheet.Paste
    Sheets("Extract").Select
    Range("I4").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("GOLD-XAU").Select
    Range("I2").Select
    ActiveSheet.Paste
    Sheets("RUB").Select
    Rows("2:2").Select
    Application.CutCopyMode = False
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("L2:AA50").Select
    Selection.Cut Destination:=Range("L1:AA49")
    Range("L1:AA49").Select
    ActiveWindow.SmallScroll Down:=-9
    Sheets("Extract").Select
    Range("B5:H5").Select
    Selection.Copy
    Sheets("RUB").Select
    Range("A2").Select
    ActiveSheet.Paste
    Sheets("Extract").Select
    Range("I5").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("RUB").Select
    Range("I2").Select
    ActiveSheet.Paste
    Sheets("CAD").Select
    Rows("2:2").Select
    Application.CutCopyMode = False
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("L2:AA50").Select
    Selection.Cut Destination:=Range("L1:AA49")
    Range("L1:AA49").Select
    Sheets("Extract").Select
    Range("B6:H6").Select
    Selection.Copy
    Sheets("CAD").Select
    Range("A2").Select
    ActiveSheet.Paste
    Sheets("Extract").Select
    Range("I6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("CAD").Select
    Range("I2").Select
    ActiveSheet.Paste
    Sheets("CHF").Select
    Rows("2:2").Select
    Application.CutCopyMode = False
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("L2:AA50").Select
    Selection.Cut Destination:=Range("L1:AA49")
    Range("L1:AA49").Select
    Sheets("Extract").Select
    Range("B7:H7").Select
    Selection.Copy
    Sheets("CHF").Select
    Range("A2").Select
    ActiveSheet.Paste
    Sheets("Extract").Select
    Range("I7").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("CHF").Select
    Range("I2").Select
    ActiveSheet.Paste
    Sheets("MXN").Select
    ActiveWindow.SmallScroll Down:=-60
    Rows("2:2").Select
    Application.CutCopyMode = False
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("L2:AA50").Select
    Selection.Cut Destination:=Range("L1:AA49")
    Range("L1:AA49").Select
    Sheets("Extract").Select
    Range("B8:H8").Select
    Selection.Copy
    Sheets("MXN").Select
    Range("A2").Select
    ActiveSheet.Paste
    Sheets("Extract").Select
    Range("I8").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("MXN").Select
    Range("I2").Select
    ActiveSheet.Paste
    Sheets("GBP").Select
    ActiveWindow.SmallScroll Down:=-15
    Rows("2:2").Select
    Application.CutCopyMode = False
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("L2:AA50").Select
    Selection.Cut Destination:=Range("L1:AA49")
    Range("L1:AA49").Select
    Sheets("Extract").Select
    Range("B9:H9").Select
    Selection.Copy
    Sheets("GBP").Select
    Range("A2").Select
    ActiveSheet.Paste
    Sheets("Extract").Select
    Range("I9").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("GBP").Select
    Range("I2").Select
    ActiveSheet.Paste
    Sheets("JPY").Select
    ActiveWindow.SmallScroll Down:=-36
    Rows("2:2").Select
    Application.CutCopyMode = False
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("L2:AA50").Select
    Selection.Cut Destination:=Range("L1:AA49")
    Range("L1:AA49").Select
    Sheets("Extract").Select
    Range("B10:H10").Select
    Selection.Copy
    Sheets("JPY").Select
    Range("A2").Select
    ActiveSheet.Paste
    Sheets("Extract").Select
    Range("I10").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("JPY").Select
    Range("I2").Select
    ActiveSheet.Paste
    Sheets("EUR").Select
    ActiveWindow.SmallScroll Down:=-15
    Rows("2:2").Select
    Application.CutCopyMode = False
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("L2:AA50").Select
    Selection.Cut Destination:=Range("L1:AA49")
    Range("L1:AA49").Select
    Sheets("Extract").Select
    Range("B11:H11").Select
    Selection.Copy
    Sheets("EUR").Select
    Range("A2").Select
    ActiveSheet.Paste
    Sheets("Extract").Select
    Range("I11").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("EUR").Select
    Range("I2").Select
    ActiveSheet.Paste
    Sheets("BRL").Select
    ActiveWindow.SmallScroll Down:=-9
    Rows("2:2").Select
    Application.CutCopyMode = False
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("L2:AA50").Select
    Selection.Cut Destination:=Range("L1:AA49")
    Range("L1:AA49").Select
    Sheets("Extract").Select
    Range("B12:H12").Select
    Selection.Copy
    Sheets("BRL").Select
    Range("A2").Select
    ActiveSheet.Paste
    Sheets("Extract").Select
    Range("I12").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("BRL").Select
    Range("I2").Select
    ActiveSheet.Paste
    Sheets("NZD").Select
    ActiveWindow.SmallScroll Down:=-27
    Rows("2:2").Select
    Application.CutCopyMode = False
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("L2:AA50").Select
    Selection.Cut Destination:=Range("L1:AA49")
    Range("L1:AA49").Select
    Sheets("Extract").Select
    Range("B13:H13").Select
    Selection.Copy
    Sheets("NZD").Select
    Range("A2").Select
    ActiveSheet.Paste
    Sheets("Extract").Select
    Range("I13").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("NZD").Select
    Range("I2").Select
    ActiveSheet.Paste
    Sheets("ZAR").Select
    Rows("2:2").Select
    Application.CutCopyMode = False
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("L2:AA50").Select
    Selection.Cut Destination:=Range("L1:AA49")
    Range("L1:AA49").Select
    Sheets("Extract").Select
    Range("B14:H14").Select
    Selection.Copy
    Sheets("ZAR").Select
    Range("A2").Select
    ActiveSheet.Paste
    Sheets("Extract").Select
    Range("I14").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ZAR").Select
    Range("I2").Select
    ActiveSheet.Paste
    Sheets("AUD").Select
    Rows("2:2").Select
    Application.CutCopyMode = False
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("L2:AA50").Select
    Selection.Cut Destination:=Range("L1:AA49")
    Range("L1:AA49").Select
    Sheets("Extract").Select
    Range("B15:H15").Select
    Selection.Copy
    Sheets("AUD").Select
    Range("A2").Select
    ActiveSheet.Paste
    Sheets("Extract").Select
    Range("I15").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("AUD").Select
    Range("I2").Select
    ActiveSheet.Paste
End Sub
[/CODE]
Вложения
Тип файла: rar COT_TRADING_CLASSES.rar (1.43 Мб, 7 просмотров)
0
2724 / 1701 / 776
Регистрация: 23.03.2015
Сообщений: 5,388
26.01.2021, 23:17 5
Corrie
Hi Man.
Could you explain the same on English for me?
To my disappointed, i couldn't catch the google translation.
Much appreciated ...
0
0 / 0 / 0
Регистрация: 17.07.2020
Сообщений: 91
27.01.2021, 00:32  [ТС] 6
It
Цитата Сообщение от Narimanych Посмотреть сообщение
Could you explain the same on English for me?
I'll try my best to explain it step by step...

#1 On the "Extract" tab. I have 14 rows of data, from row #2 to row #15.
The data is updated on the same rows on the same cells on a weekly basis.

#2 Each row of data represent a worksheet.
So in other words:
14 rows in the "Extract" tab represents 14 worksheet...

Row #2 "10-YEAR U.S. TREASURY NOTES - CHICAGO BOARD OF TRADE" data is transferred to "10-YEAR U.S" tab.
Row #3 "SILVER - COMMODITY EXCHANGE INC." data is transferred to "SILVER-XAG" tab
Row #4 "GOLD - COMMODITY EXCHANGE INC. "data is transferred to "GOLD-XAU" tab. And so on. Hope you got the picture.

I will give one example of Row #2, to copy, paste and use formula.
Once you understand the example. All applies to the other Rows in the "Extract" tab.

Now
How can I create a macro to:
#1 Insert a blank row "Always", in Row 2 in "10-YEAR U.S" tab. "Without moving Chart". Then.
#2 Copy data from "Extract" tab on Cells B2, C2, D2, E2, F2, G2, H2, & I2. Then
#3 Paste data "B2, C2, D2, E2, F2, G2, H2 & I2 into "10-YEAR U.S" tab in A2, B2, C2, D2, E2, F2, G2 & I2
Note: The last data is not pasted in "H2" in "10-YEAR U.S" tab.
#4 To create a formula in "10-YEAR U.S" tab in H2, which is "=F2-G2"
#5 The macro should design in a way, not to duplicate the data if it was not updated from "Extract" tab to "10-YEAR U.S" tab.

That's it. Hope is clear to understand.

Thanks
0
2724 / 1701 / 776
Регистрация: 23.03.2015
Сообщений: 5,388
27.01.2021, 02:36 7
Лучший ответ Сообщение было отмечено Corrie как решение

Решение

Corrie,

This is working with yours attached file.
please try it mentioned below code:
Кликните здесь для просмотра всего текста

Visual Basic
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
Sub LastReq()
Dim ARR1(1 To 14)
ARR1(1) = "10-YEAR U.S."
ARR1(2) = "SILVER-XAG"
ARR1(3) = "GOLD-XAU"
ARR1(4) = "RUB"
ARR1(5) = "CAD"
ARR1(6) = "CHF"
ARR1(7) = "MXN"
ARR1(8) = "GBP"
ARR1(9) = "JPY"
ARR1(10) = "EUR"
ARR1(11) = "BRL"
ARR1(12) = "NZD"
ARR1(13) = "ZAR"
ARR1(14) = "AUD"
 
Application.ScreenUpdating = False
With Sheets("Extract")
DT = .ListObjects(1).DataBodyRange(1, 2)
    For i = 1 To 14
      If DT <> Sheets(ARR1(i)).ListObjects(1).DataBodyRange(1, 1) Then
         Sheets(ARR1(i)).Range("A2:I2").ListObject.ListRows.Add (1)
         For j = 1 To 7
              Sheets(ARR1(i)).ListObjects(1).DataBodyRange(i, j) = .ListObjects(1).DataBodyRange(i, j + 1)
         Next
              Sheets(ARR1(i)).ListObjects(1).DataBodyRange(i, 9) = .ListObjects(2).DataBodyRange(i, 1)
         End If
         With Sheets(ARR1(i))
            .Range("A3:I3").Copy
            .Range("A2:I2").PasteSpecial Paste:=xlPasteFormats
         End With
    Next
  .[a17].Select
  Application.ScreenUpdating = True
End With
End Sub
0
0 / 0 / 0
Регистрация: 17.07.2020
Сообщений: 91
27.01.2021, 08:38  [ТС] 8
Цитата Сообщение от Narimanych Посмотреть сообщение
This is working with yours attached file.
please try it mentioned below code:
Yes Sir. This is the one.

It works GREAT!!!.

Thanks everyone whose has made a contribution for supporting me and others to move forward!!!
0
27.01.2021, 08:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.01.2021, 08:38
Помогаю со студенческими работами здесь

Макрос вставки формулы Word 2010
Здравствуйте. Помогите написать макрос вставки формулы. Формула вида X1 c надчеркиванием или без и...

Как убрать ограничения вставки iframe (для вставки видео)?
Подскажите как на dle 10.3 убрать ограничения вставки Iframe(для вставки видео)

Как написать скрипт для копирования и вставки?
Здравствуйте. Есть комбинации клавиш: - Ctrl-c - копировать - Ctrl-v - вставить....

Изменение формулы после вставки диапазона значений в лист
Добрый день, подскажите почему при вставке массива в лист с ячейки А2, в А1 формула ПРОМЕЖУТОЧНЫЕ...

События для копирования, вставки текста
Вот эти события подходят для вырезания, копирования, вставки текста в блокноте на windows form? ...

Операторы для копирования и вставки элементов массива
Есть массив A(I)=Cells(I,1), необходимо посредством VBA cкопировать его в 7-й столбец. Скажите, как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru