|
Ðàçãîâîðû îá Àìåðèêå www.gerasimov.org
|
:: |
|
|
Oleg_Msk Æèòåëü ôîðóìà
: 30.09.2004 : 1000
|
: , 25, 2005 4:54pm : |
|
|
White Owl (): |
Oleg_Msk (): |
À ìîæíî ëþáîé ïðèìåð ðàçîáðàòü? Ïðîñòî ÿ îòêðûë VB ïî F11.. |
Íå ïóòàé. VB è VBA ýòî î÷åíü ðàçíûå âåùè.
VB ýòî ñàìîñòîÿòåëüíûé ÿçûê Visual Basic. Íà íåì ìîæíî äåëàòü âñå ÷òî óãîäíî.
VBA - Visual Basic for Applications. Âñòðàåâûìûé ÿçûê. Åãî âîçìîæíîñòè îãðàíè÷åíû òîëüêî ðàáîòîé ñ äîêóìåíòîì òîãî ïðèëîæåíèÿ â êîòîðûé åãî âñóíóëè. Íî òàì îí öàðü è áîã. Èíîãäà òî ÷òî ìîæíî ñäåëàòü íà VBA â ïðèíöèïå íåâîçìîæíî ñäåëàòü íà VB.
Ó VB è VBA ñîâðåøåííî ðàçíûå ïîäõîäû. Íà VB ãëàâåíñòâóåò ïðîãðàììà, íà VBA - äîêóìåíò.
Ïóòàòü VB è VBA ýòî êàê ñêëàäñêîé ïîãðóç÷èê ïóòàòü ñ êàðüåðíûì ñàìîñâàëîì
À ïðèìåð... íó äàâàé íà÷íåì ñ ÷åãî-íèáóäü ïðîñòåíüêîãî. Íàïðèìåð ïîäñ÷èòàòü êîëè÷åñòâî óïîìèíàíèé êàêîãî íèáóäü ïðåäìåòà íà ëèñòå. Äåëàåøü â Ýêñåëå ñòðàíè÷êó ñ íàçâàíèåì "Fruits" è íà íåé â ñòîëáèê ïèøåøü:
: |
ßáëîêî
Ãðóøà
ßáëîêî
ßáëîêî
Ãðóøà
Ëèìîí |
Òåïåðü òûêàåøü Alt+F11 è â ãëàâíîì ìåíþ âûáèðàåøü Insert->Module.
 îòêðûâøåìñÿ îêîøêå ïèøåøü:
: |
Sub CountFruits()
Dim wsSrc As Worksheet, wsDest As Worksheet
Dim rSrc As Range, rDest As Range
Set wsSrc = ThisWorkbook.Worksheets("Fruits")
Set wsDest = ThisWorkbook.Worksheets.Add
wsDest.Range("A1") = "Fruit"
wsDest.Range("B1") = "Count"
For Each rSrc In wsSrc.UsedRange
Set rDest = wsDest.Columns(1).Find(rSrc.Text)
If rDest Is Nothing Then
Set rDest = wsDest.Cells(wsDest.UsedRange.Rows.Count + 1, 1)
rDest.Value = rSrc.Text
End If
rDest.Offset(0, 1).Value = rDest.Offset(0, 1).Value + 1
Next
End Sub |
Òåïåðü çàêðûâàåøü VBA, â îñíîâíîì îêíå Excel íàæèìàåøü Alt+F8, âûáèðàåøü èç ñïèñêà ìàêðîñîâ íàø CountFruits è íàæèìàåøü Run. È âñå. Íó åñëè çíàåøü VB, òî ðàçîáðàòüñÿ áóäåò íå ñëîæíî
À äàëüøå, çàäàâàé êîíêðåòíûå âîïðîñû, áóäåì äàâàòü êîíêðåòíûå îòâåòû.
Âîò ýòî:
Oleg_Msk (): |
íó íàïðèìåð, ñòðîêà åñòü ó ìåíÿ ñ ïëþñèêîì âïåðåäè, êîãäà ìû íàæèìàåì íà ïëþñèê, ðàñêðûâàåòñÿ äîïîëíèòåëüíàÿ èíôîðìàöèÿ, âíèç îò ýòîé ñòðîêè, âðîäå êàê ìåíþ ðàñêðûâàþùåãîñÿ... |
Ïðèìåð î÷åíü íåêîíêðåòíîãî âîïðîñà. È âîîáùå íå ïîíÿòíî, âîïðîñ ëè ýòî? Íó åñòü ó òåáÿ ñòðîêà ñ ïëþñèêîì è ÷òî? |
ÂÎ!!Ñïàñèáî!Âíèêàþ ïîñòåïåííî, ñêà÷àë òðè êíèãè îñëîì.......Ïðàâäà êîä íå ðàáîòàåò, íå çíàþ ïî÷åìó, ìîæåò ÿ ÷òî êðèâî äåëàþ..... |
|
|
|
|
Helen_NJ Æèòåëü ôîðóìà
: 13.11.2003 : 1539 : NC, USA
|
: , 26, 2005 5:53am : |
|
|
Oleg_Msk (): |
âîò â äàííûé ìîìåíò ýòî äåëàåòñÿ ðóêàìè è àêòóàëüíî áûëî áû ñäåëàòü ìàêðîñ.....è çàîäíî ïëîòíåíüêî ñ ýòèì ðàçîáðàòüñÿ, èáî ó ìåíÿ òóò ïðîáåë..... |
Íó òàê çàïèøèòå òî, ÷òî äåëàåòñÿ ðóêàìè, êàê ìàêðî (Macro -> Record) è ïîòîì êðîèòå ýòîò êîä êàê íàäî. Íàñ÷åò "ïðîáåëà" íå ïîíÿòíî - òàê âû VB/VBA çíàåòå èëè íåò? Êàê òóò ïðàâèëüíî çàìåòèëè, ýòî â ïðèíöèïå ðàçíûå âåùè, íî, çíàÿ îäíî, ñ äðóãèì ðàçîáðàòüñÿ ìîæíî íà ðàç. |
|
|
|
|
White Owl Øòàòíûé çàíóäà
: 10.03.2003 : 2452 : USA, New York City
|
: , 27, 2005 8:43pm : |
|
|
Àðòåì (): |
È âîò åñëè ìíå íàäî áóäåò ýòó çàäà÷ó ñäåëàòü, òî âîò ýòî íàäî êà÷àòü. À åñëè âîí òó çàäà÷ó, òî âîò ýòî êà÷àòü? ß òàê òîëüêî è áóäó - êà÷àòü. |
Íó ïî÷åìó áû è íåò? Åñëè ó òåáÿ åñòü çàäà÷à è òû çíàåøü ÷òî ãäå-òî åñòü èíñòðóìåíò ýòó çàäà÷ó ðåøàþùèé íà óðà. Ïî÷åìó áû íå ïîéòè è íå âçÿòü ýòîò èíñòðóìåíò? Òåì áîëåå çà áåñïëàòíî?
Åñëè îí ñëèøêîì òÿæåëûé äëÿ òâîåãî êàíàëà, ìîæíî çàïîìíèâ òî÷íûé àäðåñ ñõîäèòü ê êîìó-íèáóäü ñ òîëñòûì êàíàëîì. ß îáû÷íî õîäèë â îôèñ ïðîâàéäåðà êàêîãî-íèáóäü ñòàâèë ïèâî òàìîøíèì àäìèíàì è ïîëó÷àë âñå ÷òî íóæíî |
|
|
|
|
White Owl Øòàòíûé çàíóäà
: 10.03.2003 : 2452 : USA, New York City
|
: , 27, 2005 8:46pm : |
|
|
Oleg_Msk (): |
Ïðàâäà êîä íå ðàáîòàåò, íå çíàþ ïî÷åìó, ìîæåò ÿ ÷òî êðèâî äåëàþ..... |
À ñëàáî ñêàçàòü ÷òî êîíêðåòíî íå ðàáîòàåò?  êàêîì ìåñòå? Ñ êàêîé äèàãíîñòèêîé? Ó ìåíÿ îíî ðàáîòàåò. À åñëè ñêàæåøü ÷òî èìåííî ó òåáÿ íå ïîëó÷àåòñÿ - ñêàæó ãäå îøèáêà çàêðàëàñü. |
|
|
|
|
Àðòåì Ìîäåðàòîð
: 10.03.2003 : 8295 : Russia, Ufa
|
: , 27, 2005 9:08pm : |
|
|
White Owl (): |
Àðòåì (): |
È âîò åñëè ìíå íàäî áóäåò ýòó çàäà÷ó ñäåëàòü, òî âîò ýòî íàäî êà÷àòü. À åñëè âîí òó çàäà÷ó, òî âîò ýòî êà÷àòü? ß òàê òîëüêî è áóäó - êà÷àòü. |
Íó ïî÷åìó áû è íåò? Åñëè ó òåáÿ åñòü çàäà÷à è òû çíàåøü ÷òî ãäå-òî åñòü èíñòðóìåíò ýòó çàäà÷ó ðåøàþùèé íà óðà. Ïî÷åìó áû íå ïîéòè è íå âçÿòü ýòîò èíñòðóìåíò? Òåì áîëåå çà áåñïëàòíî?
Åñëè îí ñëèøêîì òÿæåëûé äëÿ òâîåãî êàíàëà, ìîæíî çàïîìíèâ òî÷íûé àäðåñ ñõîäèòü ê êîìó-íèáóäü ñ òîëñòûì êàíàëîì. ß îáû÷íî õîäèë â îôèñ ïðîâàéäåðà êàêîãî-íèáóäü ñòàâèë ïèâî òàìîøíèì àäìèíàì è ïîëó÷àë âñå ÷òî íóæíî |
Ìíå íåãäå áðàòü "òîëñòûé êàíàë". |
|
|
|
|
Oleg_Msk Æèòåëü ôîðóìà
: 30.09.2004 : 1000
|
: , 27, 2005 10:13pm : |
|
|
White Owl (): |
Oleg_Msk (): |
Ïðàâäà êîä íå ðàáîòàåò, íå çíàþ ïî÷åìó, ìîæåò ÿ ÷òî êðèâî äåëàþ..... |
À ñëàáî ñêàçàòü ÷òî êîíêðåòíî íå ðàáîòàåò?  êàêîì ìåñòå? Ñ êàêîé äèàãíîñòèêîé? Ó ìåíÿ îíî ðàáîòàåò. À åñëè ñêàæåøü ÷òî èìåííî ó òåáÿ íå ïîëó÷àåòñÿ - ñêàæó ãäå îøèáêà çàêðàëàñü. |
Îò÷åâî æ íå ñêàæó -ñêàæó:
Run-time error '9':
Subscript out of range |
|
|
|
|
White Owl Øòàòíûé çàíóäà
: 10.03.2003 : 2452 : USA, New York City
|
: , 28, 2005 12:47am : |
|
|
Oleg_Msk (): |
Run-time error '9':
Subscript out of range |
À åñëè â ýòîì äèàëîãå íàæàòü êíîïî÷êó Debug, òî îíî ïîêàæåò åùå è â êàêîé ñòðîêå îøèáêà ïðîèçîøëà....
À ñêîðåå âñåãî îøèáêà ïðîèçîøëà â ñòðîêå
: |
Set wsSrc = ThisWorkbook.Worksheets("Fruits") |
Ïîòîìó ÷òî òû ïîëåíèëñÿ ïåðåèìåíîâàòü ëèñò ñ ôðóêòàìè â "Fruits" à îñòàâèë åãî êàê îí áûë "Ëèñò1" èëè ïåðåèìåíîâàë ñ îøèáêîé. ß óãàäàë? |
|
|
|
|
Oleg_Msk Æèòåëü ôîðóìà
: 30.09.2004 : 1000
|
: , 28, 2005 7:11am : |
|
|
White Owl (): |
Oleg_Msk (): |
Run-time error '9':
Subscript out of range |
À åñëè â ýòîì äèàëîãå íàæàòü êíîïî÷êó Debug, òî îíî ïîêàæåò åùå è â êàêîé ñòðîêå îøèáêà ïðîèçîøëà....
À ñêîðåå âñåãî îøèáêà ïðîèçîøëà â ñòðîêå
: |
Set wsSrc = ThisWorkbook.Worksheets("Fruits") |
Ïîòîìó ÷òî òû ïîëåíèëñÿ ïåðåèìåíîâàòü ëèñò ñ ôðóêòàìè â "Fruits" à îñòàâèë åãî êàê îí áûë "Ëèñò1" èëè ïåðåèìåíîâàë ñ îøèáêîé. ß óãàäàë? |
Òî÷íî!Òû ïðàâ!
/óøåë ïîñûïàòü ãîëîâó ïåïëîì/ |
|
|
|
|
|
Powered by phpBB © 2001, 2005 phpBB Group
|