|
|
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
Есть большой macros где данные из csv файла надо вставить в Excel Мне надо дописать маленькую часть где: если есть TOTAL OTHER REVENUE тогда оставить и OTHER REVENUE если нет TOTAL OTHER REVENUE тогда удалить OTHER REVENUE Вот пишу так, но почему-то OTHER REVENUE всегда удаляется -- когда есть TOTAL OTHER REVENUE и когда его нет. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2010, 18:22 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
это образец csv файла когда есть TOTAL OTHER REVENUE: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. это образец csv файла когда нет TOTAL OTHER REVENUE и тогда надо удалить OTHER REVENUE Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2010, 18:34 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
Ваш кусок настолько вырван из контекста, что не подлежит анализу. Поставьте точку останова на условиях и распечатайте значения выражений с MID ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2010, 20:18 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
sasha2345, у Вас ведь цикл идёт сверху, и в любом случае сперва удалит OTHER REVENUE, а лишь затем обнаружит TOTAL OTHER REVENUE. Я думаю, есть 3 варианта (лучший 3-ий): 1.если TOTAL OTHER REVENUE всегда ниже, то цикл надо вести снизу и выходить из цикла при нахождении. 2. если TOTAL OTHER REVENUE всегда ниже, то цикл надо вести снизу и использовать флаг. Т.е. если нашли тотал - ставим флаг = true, и тогда удаление не сработает (проверять флаг перед удалением. 3. Использовать find по этому столбцу. Если TOTAL OTHER REVENUE не нашлось - запускаем цикл перебора сторок, или даже так же через find ищем строку с OTHER REVENUE и удаляем. Т.е. дословно Ваше условие: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2010, 20:25 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
Hugo121у Вас ведь цикл идёт сверху, и в любом случае сперва удалит OTHER REVENUE, а лишь затем обнаружит TOTAL OTHER REVENUE. Хьюго, почему? Он же Mid-ом режет строку (можно использовать Left, кстати), так что не должен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2010, 20:28 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, я так прочитал: идёт по строкам вниз, начиная с 5-ой, и если в начале 8-ой ячейки нет "TOTAL OTHER REVENUE", то удаляет эту строку, если в ней в начале есть "OTHER REVENUE". Т.е. в любом случае эту строку удалит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2010, 20:33 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
Ну вот например так, если в этом листе в 8-ом столбце только одно возможное значение "TOTAL OTHER REVENUE" и "OTHER REVENUE" Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2010, 20:51 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
Hugo121, Спасибо! Работает! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2010, 23:34 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
sasha2345, смотри, это только на одно совпадение! Если будет больше, уже второе не удалит! И может ещё LookAt:=xlWhole, MatchCase:=False можно поменять... мало ли там пробелы... И диапазон поиска можно сузить, если там например на одном листе несколько таких списков есть - можно перебрать их по-отдельности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2010, 23:53 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
Hugo121, подскажите как если в колонке 8 встречается : Mid(Cells(i, 8), 1, 5) = "TOTAL" то тогда после этой строчки вставлять пустую? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 07:24 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
Код: plaintext где c - ячейка с выполняющимся условием ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 08:21 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
sasha2345Hugo121, подскажите как если в колонке 8 встречается : Mid(Cells(i, 8), 1, 5) = "TOTAL" то тогда после этой строчки вставлять пустую? Уже подсказали, но есть одно недосказанное, что может вдруг неожиданно проявиться: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 11:53 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
Hugo121, что-то после того как я хочу вставить пустую строчку весь макро не работает так как работал до вставки. и не важно как пишу, так Код: plaintext 1. 2. или так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. оно все работает вроде нормально, но в последних блоках данные вставляются из csv и их макро не форматирует ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 15:27 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
так выглядит до вставки пустой строчки после TOTAL -- все нормально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 15:41 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
а так когда делаю вставку пустой строчки после TOTAL -- нет никакого формата в конце: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 15:44 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
Код: 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. 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. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382. 383. 384. 385. 386. 387. 388. 389. 390. 391. 392. 393. 394. 395. 396. 397. 398. 399. 400. 401. 402. 403. 404. 405. 406. 407. 408. 409. 410. 411. 412. 413. 414. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 15:58 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
sasha2345, Лучше бы файл с макросом (перед его выполнением) приложили бы, проще было анализировать. Что заметил: цикл в операции Find-delete совершенно не нужен, так Вы 550(?) раз делаете ненужную работу - хватит и одного раза. Уже всё найдено и удалено. Но конечно если там удалять надо не по одной строке, тогда это работает, но тогда надо просто поиск организовать с продолжением, а не многократно делать одиночный поиск. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 17:08 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
Так, опять те же грабли: формат внизу не ставится потому, что iRows у Вас определяется в самом начале кода, и после вставки строк их количество естественно увеличивается, а iRows остаётся прежним. Поэтому нижние строки уже не проверяются в цикле Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Выход: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Но 100% за верность кода не ручаюсь - проверить не могу - нет файла... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 17:24 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
Вот, сделал пример, работает до низу, поанализируй: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 17:38 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 18:05 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 18:05 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
поменял на i = iRows To... -- но все тоже самое Я выложил тут макрос и csv файл Hugo121, твой файл я скачал и он ранается, но я хотел посмотреть сам макрос но он не активен в Excel: View--> Macros--->Edit ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 18:13 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
sasha2345, Вот это что делает? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Да и For i = 1 To 6 хочется сделать For i = 1 To 8 (в двух местах), а то тут и там ниже ошибки при Cells(i, 3) = -1 * Cells(i, 3) вылазят... В общем, что-то не стыкуется, такой код явно нерабочий на этом файле. А мой код в листе, у меня через Alt+F8 можно выбрать и редактировать или запускать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 18:30 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
это адрес и он нужен удаление первой колонки там есть но даже если я эту часть убираю -- то таже проблема всеравно остается Hugo121sasha2345, Вот это что делает? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Да и For i = 1 To 6 хочется сделать For i = 1 To 8 (в двух местах), а то тут и там ниже ошибки при Cells(i, 3) = -1 * Cells(i, 3) вылазят... В общем, что-то не стыкуется, такой код явно нерабочий на этом файле. А мой код в листе, у меня через Alt+F8 можно выбрать и редактировать или запускать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 18:48 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
sasha2345, я поздно заметил новый csv файл, да, там есть CSZ, а почему в первом небыло??? Ну ладно, целиком проверить не получилось, так там всё наворочено... почему-то молча всё окончилось, хотя результат не сохранился - нет у меня такого сетевого диска... непорядок, тоже надо пофиксить. Ну так и есть, чтобы до конца форматировало, надо ещё раз переназначить iRows, вот так: Код: plaintext 1. 2. 3. 4. Ну и цикл убери, когда удаляешь, вот тут: Код: plaintext 1. 2. 3. 4. 5. например Код: plaintext 1. 2. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 19:22 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
Проверил с сохранением - в архиве результат и код, который его сделал (изменения минимальны - только то, что написал выше). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 19:30 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
Да, если не может сохранить - молча пишет лог в корне С. Причём заменяет старый лог на новый - обычно дописывают с датой и временем... Может тогда есть смысл ещё и MsgBox в конце работы с результатом показать, а то непонятно - всё ОК или нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 19:44 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
Hugo121 Ну так и есть, чтобы до конца форматировало, надо ещё раз переназначить iRows, вот так: Код: plaintext 1. 2. 3. 4. Вроде сейчас все заработало как надо! Hugo121, еще раз спасибо за помощь!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 23:50 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
У меня тут ещё возникли тудности в расчетах данных взятых из csv файла и вставкой их в Excel. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 21:12 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
sasha2345, csv file: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 21:13 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
macros: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 21:14 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
так должно получиться ( на примере одной группы ) -- формулы для вычислении основаны на данных из csv файла ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 21:18 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
так должно получиться ( на примере одной группы ) -- формулы для вычислении основаны на данных из csv файла ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 21:18 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
sasha2345, насчёт трудностей непонятно. В чём именно? Вникать в код не стал (он кстати у меня завис, толком не отработав), но если то, что написано в 21-25 строках без "=" - эти неработающие формулы, то они ссылаются на 9 и 12 строку, где пусто. Я их заполнил цифрами, и что-то стало считать (после включения формул естественно). Ищите, почему там пусто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 21:58 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
Hugo121, 9 и 12 строка -- это я имел ввиду в csv файле это не формулы а расчеты для каждой колонки где данные берутся из csv файла: C9/D9 G9/H9 (C9/D9)-(G9/H9) ((C9/D9)-(G9/H9)) / (C9/D9) * 100 Occup % C12/D12 G12/H12 (C12/D12)-(G12/H12) ((C12/D12)-(G12/H12)) / (C12/D12) * 100 C21/C9 D21/G9 (C21/C9)-(D21/G9) ((C21/C9)-(D21/G9)) / (C21/C9) * 100 Occup H21/C12 I21/G12 (H21/C12)-(I21/G12) ((H21/C12)-(I21/G12)) / (H21/C12) * 100 C21/E9 D21/I9 (C21/E9)-(D21/I9) ((C21/E9)-(D21/I9)) / ( C21/E9 ) * 100 SqFt Occup H21/E12 I21/I12 (H21/E12)-(I21/I12) ((H21/E12)-(I21/I12)) / (H21/E12) * 100 C21/D9 D21/H9 (C21/D9)-(D21/H9) ((C21/D9)-(D21/H9)) / (C21/D9) * 100 Tot H21/D12 I21/H12 (H21/D12)-(I21/H12) ((H21/D12)-(I21/H12)) / (H21/D12) * 100 C21/F9 D21/J9 (C21/F9)-(D21/J9) ((C21/F9)-(D21/J9)) / (C21/F9) * 100 SqFt Tot H21/F12 I21/J12 (H21/F12)-(I21/J12) ((H21/F12)-(I21/J12)) / (H21/F12) * 100 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 22:15 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
sasha2345, насчёт "завис" - это он сохранить не может, сетевого пути нет. А так вроде отработал. Так в чём проблема-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 22:20 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
Hugo121, Да макрос работает, но мне надо делать дополнительные расчеты используя данные в csv файле и вставлять его в Excel. например, если в колонке 8 встречается Commercial Rent тогда надо добавить 5 rows вниз и взяв данные из csv файла сделать такие расчеты для каждой колонки: C9/D9 G9/H9 (C9/D9)-(G9/H9) ((C9/D9)-(G9/H9)) / (C9/D9) * 100 Occup % C12/D12 G12/H12 (C12/D12)-(G12/H12) ((C12/D12)-(G12/H12)) / (C12/D12) * 100 C21/C9 D21/G9 (C21/C9)-(D21/G9) ((C21/C9)-(D21/G9)) / (C21/C9) * 100 Occup H21/C12 I21/G12 (H21/C12)-(I21/G12) ((H21/C12)-(I21/G12)) / (H21/C12) * 100 C21/E9 D21/I9 (C21/E9)-(D21/I9) ((C21/E9)-(D21/I9)) / ( C21/E9 ) * 100 SqFt Occup H21/E12 I21/I12 (H21/E12)-(I21/I12) ((H21/E12)-(I21/I12)) / (H21/E12) * 100 C21/D9 D21/H9 (C21/D9)-(D21/H9) ((C21/D9)-(D21/H9)) / (C21/D9) * 100 Tot H21/D12 I21/H12 (H21/D12)-(I21/H12) ((H21/D12)-(I21/H12)) / (H21/D12) * 100 C21/F9 D21/J9 (C21/F9)-(D21/J9) ((C21/F9)-(D21/J9)) / (C21/F9) * 100 SqFt Tot H21/F12 I21/J12 (H21/F12)-(I21/J12) ((H21/F12)-(I21/J12)) / (H21/F12) * 100 например ((C9/D9)-(G9/H9)) / (C9/D9) * 100 -- C9, D9,G9 и H9 -- это имеется ввиду взять данные из csv файла ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 22:33 |
|
||
|
macros -- данные из csv файла надо вставить в Excel
|
|||
|---|---|---|---|
|
#18+
sasha2345, даа, рутина ещё та. Делать Вам. Я вижу два пути: 1.csv файл не закрывать, пока данные не взяли. В код добавить: Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext 1. 2. 3. 2.Можно конечно эти значения и раньше взять в переменные и файл закрыть, как сейчас в коде, но как бы в переменных не запутаться. В начале, как выше написал, только сразу значения в переменные, csv закрыть, а потом уже из переменных в таблицу. Смотрите, как легче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 23:00 |
|
||
|
|

start [/forum/topic.php?all=1&fid=60&tid=2159872]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
28ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 189ms |
| total: | 282ms |

| 0 / 0 |
