Results 1 to 5 of 5
Thread: Âúïðîñ îòíîñíî VBA (Excel)
Hybrid View
-
24th November 2009 14:35 #1
Âúïðîñ îòíîñíî VBA (Excel)
Çäðàâåéòå,
Èìàì åäíà åêñåëñêà òàáëèöà, êîÿòî ñúì ñè íàïðàâèë äà ñå "ïî÷èñòâàò" ñ ìàêðîñ êëåòêèòå, êúäåòî ìîæå äà ñå ïèøå. Ñåãà èñêàì ïðåäè äà "ïî÷èñòè" (íàâñÿêúäå ïîñòàâÿ íóëè) òåçè êëåòêè äà "ïðåïèøå" ÷àñò îò òÿõ â äðóã Sheet. Èìàì 8 êîëîíêè ñ ïî 10 ðåäà, êàòî ïîñëåäíèÿ ðåä å ñáîð îò ïðåäèøíèòå. Âúçìîæíî å äà íå ñà ïîïúëíåíè âñè÷êèòå 8 êîëîíêè. Êàê äà ãè îáõîäÿ ñ öèêúë (äà êàæåì À1 äî À8)? Ëåñíî ìîãà äà íàïèøà íÿêàêâî ìàðêèðàíå íà êëåêòà + ïðîâåðêà (if) äàëè å ïúëíà, íî âñå ïàê íå å ÷àê òîëêîâà èíòåëèãåíòíî ðåøåíèå, êîëêîòî àêî ïîëçâàì öèêúë äà ãè îáõîæäà(ïúê óòðå àêî ðåøà äà èìàì 300 êîëîíêè êàêâî ïðàâèì...). Ìèñëÿ ñè, àêî ìîæå äà ñå íàïðàâè íÿêàêúâ do - while èëè íåùî ïîäîáíî - ïúðâî äà ãëåäà äàëè å ïúëíà êëåòêàòà àêî å ïúëíà äà ÿ êîïèðà è äà îòèâà íà ñëåäâàùàòà è òí...
Àêî èìà íà÷èí äà ñå îáðúùàì êúì êëåòêèòå â åêñåë âñå åäíî ñà ïîçèöèÿ â äâóìåðåí ìàñèâ (a[i][j]) ìèñëÿ ùå óñïåÿ äà ñå ñïðàâÿ
-
24th November 2009 14:41 #2Registered User
Join Date: Oct:2003
Location: Ñîôèÿ
Posts: 4,317
Íå å ëè ïî-ëåñíî äà ïðåêîïèðàø íà íîâîòî ìÿñòî îñåìòå êîëîíè èçöÿëî?
Èíà÷å ìîæå äà ñå íàïðàâè ñ öèêúë. Íàïðèìåð ÷ðåç óïîòðåáà íà property Cells. Ñàìî òðÿáâà äà ñå âíèìàâà ñ àäðåñèðàíåòî, ÷å òî å ñïðÿìî òåêóùèÿ Range.
Îñâåí òîâà â ïîìîùòà èìà öÿëà ñòàòèÿ, îçàãëàâåíà "Looping Through a Range of Cells".
-
24th November 2009 14:58 #3
Èäåÿòà å, ÷å òîâà íåùî âñúùíîñò å äîêóìåíò, êîéòî ñå ïîïúëâà è ñå ðàçïå÷àòâà. Ïîñëå ñå ïðàâè íîâ (ñ áóòîíà), êàòî ïðåäè òîâà òðÿáâà äà ñå çàïèøàò îïðåäåëåíè íåùà îò äîêóìåíòà - íîìåðà ìó, äàòàòà è ñúîòâåòíèòå ñóìè â êîëîíêèòå.
Óæ òúðñèõ â ãóãúë (âèæ çà õåëïà íà MS íå ñå ñåòèõ
) àìà òàì íàìåðèõ ñàìî îáõîæäàíå îò ãîðå íà äîëó(èëè îáðàòíîòî) êàòî ñå òúðñè ïîñëåíà ïîïúëíåíà è ñå ìèíàâà ïðèìåðíî íà ñëåäâàùàòà...
Ñåãà ùå ïðîâåðÿ ñòàòèÿòà
Åäèò: âèäÿõ ÿ íà áúðçî. Ìèñëÿ ùå ìè ñâúðøè èäåàëíà ðàáîòà. Áëàãîäàðíîñòè è ùå ïèòàì îùå ñêîðî âåðîÿòíî
Åäèò2: Òîâà If curCell.Value2! = Null âèíàãè ìè âðúùà, ÷å êëåòêàòà å ïðàçíà. Ò.å. âèíàãè óñëîâèåòî å false. Êàêâà ìè å ãðåøêàòà?Last edited by MrShadow; 24th November 2009 at 16:13.
-
24th November 2009 16:02 #4Registered User
Join Date: Oct:2003
Location: Ñîôèÿ
Posts: 4,317
Ïîìèñëè è äàëè íÿìà äà å äîáðå äà èçïîëçâàø named ranges. Òîâà ñèëíî óëåñíÿâà íàìèðàíåòî èëè îáõîæäàíåòî íà îáõâàòè îò êëåòêè. Íî ïúê å ïðîáëåì, àêî ïîòðåáèòåëÿò ìîæå äà ïðàâè ïðîìåíè ïî òàáëèöàòà, ò.å. äà âìúêâà èëè äà òðèå ðåäîâå è êîëîíè.
-
24th November 2009 17:27 #5
Òîâà ìè å êîäà:
Îáèêàëÿ íóæíèòå êëåòêè è ïðîâåðÿâà. Îáà÷å êàêòî è äà ÿ âúðòÿ ïðîâåðêàòà ò.å.Code:For Counter = 5 To 12 Set curCell = Worksheets("Sheet1").Cells(9, Counter) If curCell.Value = "" Then Worksheets("M1").Range("A65536").End(xlUp).Offset(1).Value = Worksheets("Sheet1").Range("B5").Value Worksheets("M1").Range("B65536").End(xlUp).Offset(1).Value = Worksheets("Sheet1").Range("E5").Value Worksheets("M1").Range("C65536").End(xlUp).Offset(1).Value = Worksheets("Sheet1").Cell(9, Counter).Value Worksheets("M1").Range("D65536").End(xlUp).Offset(1).Value = Worksheets("Sheet1").Cell(25, Counter).Value End If Next Counter
èëèCode:If curCell.Value = "" Then
àêî å ïðàçíà êëåòêàòà, êîÿòî ñå ïðîâåðÿâà òîãàâà ñå èçïúëíÿâàò êîìàíäèòå â If-a. Çàùî òàêà?Code:If curCell.Value! = "" Then
Åäèò: îïðàâèõ ñå ñ ãúðìåíåòî. Ïðîñòî ìîÿ ãðåøêà â äðóãàòà ÷àñò îò òàáëèöàòà
Îñòàíà if-a...
Åäèò2: ÈÄÈÎÒ ñúì!  åêñåë <> ñå ïîçëâà çà ðàçëè÷íî à íå !=
Òîâà äà ìè å îáè÷êà...
---------- Äîáàâåí ïîñëåäâàù êîìåíòàð â 17:27 ---------- Îðèãèíàëíèÿò êîìåíòàð å ïóñíàò â 16:39 ----------
Íîâ âúïðîñ:
Èìàì Drop down ìåíþ. Èñêàì äà îáâúðæà âñÿêà îïöèÿ îò íåãî äà ïîïúëâà è äðóãà êëåòêà ñ îïðåäåëåíà ñòîéíîñò (èçáèðàì ñè èìå îò ìåíþòî è â äðóãàòà êëåòêà ñå ïîïúëâà àäðåñ, ïðåäâàðèòåëíî çàäàäåí).
Îòíîâî ìîëÿ çà íàñîêè (ïî-èíòåðåñíî ìè å äà ñè ðàçáóð÷à ñàì ñëåä êàòî çíàì êúäå îòêîëêîòî äà ìè ñå äàäå íà ãîòîâî
).
Åäèò: È òîâà ñè ãî íàìåðèõ:
Code:Sub Worksheet_Change(ByVal Target As Range)
Last edited by MrShadow; 24th November 2009 at 18:02.




Reply With Quote
Lenovo ThinkPad 15 èëè IdeaPad 15
5th May 2023, 22:16 in Ìîáèëíè êîìïþòðè