Ðàçãîâîðû îá Àìåðèêå
www.gerasimov.org
 
  FAQFAQ             
            

Microsoft Excel
.  1, 2
 
           Ðàçãîâîðû îá Àìåðèêå -> Ïðî êîìïû
::  
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 çíàåòå èëè íåò? Êàê òóò ïðàâèëüíî çàìåòèëè, ýòî â ïðèíöèïå ðàçíûå âåùè, íî, çíàÿ îäíî, ñ äðóãèì ðàçîáðàòüñÿ ìîæíî íà ðàç.
    e-mail
White Owl
Øòàòíûé çàíóäà


: 10.03.2003
: 2452
: USA, New York City

: , 27, 2005 8:43pm     :

Àðòåì ():
È âîò åñëè ìíå íàäî áóäåò ýòó çàäà÷ó ñäåëàòü, òî âîò ýòî íàäî êà÷àòü. À åñëè âîí òó çàäà÷ó, òî âîò ýòî êà÷àòü? ß òàê òîëüêî è áóäó - êà÷àòü.

Íó ïî÷åìó áû è íåò? Åñëè ó òåáÿ åñòü çàäà÷à è òû çíàåøü ÷òî ãäå-òî åñòü èíñòðóìåíò ýòó çàäà÷ó ðåøàþùèé íà óðà. Ïî÷åìó áû íå ïîéòè è íå âçÿòü ýòîò èíñòðóìåíò? Òåì áîëåå çà áåñïëàòíî? Óëûáêà
Åñëè îí ñëèøêîì òÿæåëûé äëÿ òâîåãî êàíàëà, ìîæíî çàïîìíèâ òî÷íûé àäðåñ ñõîäèòü ê êîìó-íèáóäü ñ òîëñòûì êàíàëîì. ß îáû÷íî õîäèë â îôèñ ïðîâàéäåðà êàêîãî-íèáóäü ñòàâèë ïèâî òàìîøíèì àäìèíàì è ïîëó÷àë âñå ÷òî íóæíî Óëûáêà
    e-mail MSN Messenger
White Owl
Øòàòíûé çàíóäà


: 10.03.2003
: 2452
: USA, New York City

: , 27, 2005 8:46pm     :

Oleg_Msk ():
Ïðàâäà êîä íå ðàáîòàåò, íå çíàþ ïî÷åìó, ìîæåò ÿ ÷òî êðèâî äåëàþ.....

À ñëàáî ñêàçàòü ÷òî êîíêðåòíî íå ðàáîòàåò?  êàêîì ìåñòå? Ñ êàêîé äèàãíîñòèêîé? Ó ìåíÿ îíî ðàáîòàåò. À åñëè ñêàæåøü ÷òî èìåííî ó òåáÿ íå ïîëó÷àåòñÿ - ñêàæó ãäå îøèáêà çàêðàëàñü.
    e-mail MSN Messenger
Àðòåì
Ìîäåðàòîð


: 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" èëè ïåðåèìåíîâàë ñ îøèáêîé. ß óãàäàë?
    e-mail MSN Messenger
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" èëè ïåðåèìåíîâàë ñ îøèáêîé. ß óãàäàë?

Òî÷íî!Òû ïðàâ!
/óøåë ïîñûïàòü ãîëîâó ïåïëîì/ Ñìåõ
:   
           Ðàçãîâîðû îá Àìåðèêå -> Ïðî êîìïû : GMT
.  1, 2
2 2

 
 







Powered by phpBB © 2001, 2005 phpBB Group