|
Ошибка прерывания кода. (возникает случайным образом)
|
|||
---|---|---|---|
#18+
Всем доброго дня. Написал я макрос, но работает он как то не стабильно. Я по образованию не программист, разобраться самостоятельно в причине возникновения этой воистину случайной ошибки - я не смог. Ошибка хаотична, она то, возникает, потом перезапустишь пару раз макрос по новой и все вроде бы работает. Текст ошибки: - "code execution has been interrupted" притом место ошибки всегда хаотично, то на прорисовке сетки, то на завершении макроса на команде sub, то на одном из циклов For. Показывает не ошибку, а место прерывания работы макроса, а где кроется ошибка... я пока понять не могу . Я заметил что чаще всего данная ошибка возникает когда я использую msgbox для проверки. А так же чаще всего прерываться в конце кода, вот на этом месте: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
p.s. И если вдруг макрос прервался, то можно остановить и сразу запустить, он сработает и даст результат. Иногда это помогает :) (Весь код кидаю отдельно. То с чем код работает, будет лежать в книге) FAQ по макрасу. 1 лист - не трогаем, это информация которая будет обрабатывается макрасом. 2 лист - результат работы макроса. 3 лист - то, что, не вошло на 2 лист. Код: vbnet 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. 415. 416. 417. 418. 419. 420. 421. 422. 423. 424. 425. 426. 427. 428. 429. 430. 431. 432. 433. 434. 435. 436. 437. 438. 439. 440. 441. 442. 443. 444. 445. 446. 447. 448. 449. 450. 451. 452. 453. 454. 455. 456. 457. 458. 459. 460. 461. 462. 463. 464. 465. 466. 467. 468. 469. 470. 471. 472. 473. 474. 475. 476. 477. 478. 479. 480. 481. 482. 483. 484. 485. 486. 487. 488. 489. 490. 491. 492. 493. 494. 495. 496. 497. 498. 499. 500. 501. 502. 503. 504. 505. 506. 507. 508. 509. 510. 511. 512. 513. 514. 515. 516. 517. 518. 519. 520.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2014, 12:23 |
|
Ошибка прерывания кода. (возникает случайным образом)
|
|||
---|---|---|---|
#18+
Sub Affinity() вижу... End Sub - в упор не вижу. Не надо постить кривой хлам... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2014, 13:41 |
|
Ошибка прерывания кода. (возникает случайным образом)
|
|||
---|---|---|---|
#18+
Akina, Так назывался макрос, так оно в названии и осталось. End sub идет сразу после: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
все остальное, то есть ниже по коду это функции. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2014, 13:53 |
|
Ошибка прерывания кода. (возникает случайным образом)
|
|||
---|---|---|---|
#18+
lopuxi, на всякей а может FontBold ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2014, 14:14 |
|
Ошибка прерывания кода. (возникает случайным образом)
|
|||
---|---|---|---|
#18+
5005, не имеет значения, можно и так и так ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2014, 14:21 |
|
Ошибка прерывания кода. (возникает случайным образом)
|
|||
---|---|---|---|
#18+
Ну так и выложи ДВА файла. Один с данными, другой с макросом. И точную методику воспроизведения проблемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2014, 14:35 |
|
Ошибка прерывания кода. (возникает случайным образом)
|
|||
---|---|---|---|
#18+
Ковыряясь в коде, я тут обнаружил проблем. Она в моменте поиска по аудиториям, канала Россия 2. То есть, второй цикл ломается, на первом моменте, когда канал Россия 2 (переменная - Kanal) проходит условия совпадения. kanal = Россия 2. Вступает второй цикл с поиском аудитории и тут буквально на первой же проверке: Код: vbnet 1.
он выдает ошибку: - "code execution has been interrupted" Перепроверил переменные... закомпилировал все, оставил только цикл, ошибка перемещается с уловия If в цикл For и остается. Почему то, именно на этом месте код буксует, пока не могу понять почему.. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
При том странность на этом не заканчивается. Полностью идентичный код, к пример "первый Канал" - работает, как по маслу. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2014, 14:41 |
|
Ошибка прерывания кода. (возникает случайным образом)
|
|||
---|---|---|---|
#18+
Akina, Вот макрос. В первом сообщении я крипел книгу1.xlsx, то с чем работает макрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2014, 14:43 |
|
Ошибка прерывания кода. (возникает случайным образом)
|
|||
---|---|---|---|
#18+
lopuxi, заменила листы на ссылки подправила код Код: vbnet 1. 2. 3. 4. 5. 6. 7.
у вас видимо модуль зависит от того, какой лист активен при запуске ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2014, 15:52 |
|
Ошибка прерывания кода. (возникает случайным образом)
|
|||
---|---|---|---|
#18+
lopuxi, забыла приложить ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2014, 15:55 |
|
Ошибка прерывания кода. (возникает случайным образом)
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, спасибо. Однако странность с Россией 2 продолжается. Канал почему то не обрабатывается кодом, не в носится на лист 2. А так же не вносится на лист 3, куда должны попадать те каналы, что не вошли на лист 2 :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2014, 16:02 |
|
Ошибка прерывания кода. (возникает случайным образом)
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, а нет, все нормально! Код России 2 был закомпелипрован, я не обратил внимание. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2014, 16:06 |
|
Ошибка прерывания кода. (возникает случайным образом)
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, а что значит Debug.Print ? Я первый раз это встречаю. Как она работает?) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2014, 16:23 |
|
Ошибка прерывания кода. (возникает случайным образом)
|
|||
---|---|---|---|
#18+
lopuxi, я не люблю msgbox, пользуюсь редко Debug.Print выводит в окно отладки можно задать трассировку затем внимательно проанализировать ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2014, 16:48 |
|
Ошибка прерывания кода. (возникает случайным образом)
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКАя не люблю msgbox, пользуюсь редко Debug.Print выводит в окно отладки можно задать трассировку затем внимательно проанализировать Ещё удобнее не Debug.Print, а комбинация Locals+Watch Windows. Видишь всё сразу, порой даже то, что не собирался смотреть - а оно вдруг изрядно помогает. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2014, 16:56 |
|
Ошибка прерывания кода. (возникает случайным образом)
|
|||
---|---|---|---|
#18+
Я еще немного Вас помучаю. Сейчас код работает, но работает отнюдь не все делает так как я хочу :) Россия 2 все так и не хочет переносится на 3 лист, если аудитория данного канала не была найдена на листе 1. Отсюда возникает непонятность. Пройти условие проверки по аудитории он не может. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Соответсвенно мы перепрыгиваем к Else Код: vbnet 1. 2. 3. 4.
Что должен выдать MsgBox? Наверное искомое Россия 2. А вот нет. Выдает ТВ ЦЕНТР / 3 КАНАЛ. Почему, как переменная меняет свое ранее заданное значение ? О_о ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2014, 17:17 |
|
Ошибка прерывания кода. (возникает случайным образом)
|
|||
---|---|---|---|
#18+
lopuxiЧто должен выдать MsgBox? Наверное искомое Россия 2Почему вдруг? Он должен выдать все что угодно, кроме Россия 2, потому что в ветке If Kanal = "РОССИЯ 2" Then нет MsgBox-а ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2014, 17:19 |
|
Ошибка прерывания кода. (возникает случайным образом)
|
|||
---|---|---|---|
#18+
Shocker.Pro, В переменную Kanal заносится - "Россия 2". Далее она идет сверяться со всеми другими каналами в большом цикле, находит саму себя, тоесть kanal(Россия2) = "Россия 2". Включается внутренний второй цикл по и If по поиску аудитории. И так как ее нету, он должен перейти к Else, все еще держа в памяти "Россия 2". Я даже не могу понять, когда он меняет переменную. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2014, 17:29 |
|
Ошибка прерывания кода. (возникает случайным образом)
|
|||
---|---|---|---|
#18+
Shocker.Pro, Ты прав. До меня дошло что не так)) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2014, 17:39 |
|
Ошибка прерывания кода. (возникает случайным образом)
|
|||
---|---|---|---|
#18+
Открой для себя отладку, точки останова и пошаговое выполнение программы ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2014, 17:44 |
|
Ошибка прерывания кода. (возникает случайным образом)
|
|||
---|---|---|---|
#18+
Shocker.Pro, если бы я знал это сделать. Я еще пока не понял как работает Debug.Print. Сможешь объяснить как пользоваться Debug.Print и тобой предложенной комбинацией Locals+Watch Windows? Или может есть хорошая, статья на эту тему. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2014, 18:18 |
|
Ошибка прерывания кода. (возникает случайным образом)
|
|||
---|---|---|---|
#18+
lopuxiЯ еще пока не понял как работает Debug.Print. Сможешь объяснить как пользоваться Debug.Print и тобой предложенной комбинацией Locals+Watch Windows? View - Immediate Window Откроется окно. Именно в него пишет Debug.Print. Ну и там же остальные пункты. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2014, 18:20 |
|
|
start [/forum/topic.php?fid=60&msg=38525676&tid=2156577]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 160ms |
0 / 0 |