vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest sobota, 11 maja 2024 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

Makro nie działa


otwartyotwarty rozpoczął: grizz postów: 15



napisał: grizz
postów: 9


umieszczony:
17 kwietnia 2012
18:51

  
? Dziwne :) Dzięki :)
napisał: Trebor
postów: 1209


umieszczony:
17 kwietnia 2012
16:12

edytowany:
17 kwietnia 2012
16:13

  
Od początku.
W pliku zamieszczonym przez Ciebie na forum usuwam dane z kolumny C i D ponieważ według mnie są zbędne.
Usuwam również to co jest od kolumny AH do AJ, aby mieć jasność co robi moje makro.

Uruchamiam Twoje makro Leksem i faktycznie nic się nie dzieje.

Teraz dopisuje do każdego ciągu w kolumnie B na końcu spację.

Uruchamiam ponownie makro Leksem i coś zaczyna się dziać.

Teraz wymieniam funkcję Function SlownikBrakSlowa(leksem) As Boolean i już widać coś więcej - nie jest dopisywane drugi raz słowo już znajdujące się w słowniku.

Czy to co napisałem powyżej to Prawda czy Fałsz?
napisał: grizz
postów: 9


umieszczony:
16 kwietnia 2012
22:32

  
Jak skopiowałem tą funkcję zamiast mojej, to też nie działało.
napisał: Trebor
postów: 1209


umieszczony:
13 kwietnia 2012
21:16

  
Po pierwsze usuń z arkusza Twoją funkcję. Nie została napisano jako arkuszowa.
Po drugie pisałem o pewnych zmianach których nie zawarłeś w pliku zamieszczonym na forum.

Cud się nie wydarzy. Jeśli nie wprowadzisz zmian lub nie uzasadnisz powodu ich pomijania do niczego nie dojdziemy.
napisał: grizz
postów: 9


umieszczony:
13 kwietnia 2012
20:40

  
nazwa pliku rozmiar
Zeszyt1 - Kopia.xls 84.00 kB

Raz działa, a raz nie, znaczy nigdy nie dodaje do słownika, ale czasami się wyświetla msgbox. Arkusz3.
napisał: Trebor
postów: 1209


umieszczony:
13 kwietnia 2012
18:44

  
Daj to w pliku na forum. Napisz dla którego słowa się nie uruchamia (nie dopisuje do listy)
napisał: grizz
postów: 9


umieszczony:
13 kwietnia 2012
18:20

  
Teżsię nie zawsze uruchamia (dodaję testowego msgboxa) i nie działa :(
napisał: Trebor
postów: 1209


umieszczony:
13 kwietnia 2012
18:06

  
Dość mocno to skomplikowane.
1. Dodaj do każdego ciągu w kolumnie B na końcu spację (zorientujesz się o co chodzi)
2. Funkcja sprawdzająca czy dane słowo już jest na liście proponuję jak niżej:
Function SlownikBrakSlowa(leksem) As Boolean
    For i = 2 To CInt((Arkusz3.Cells(1, 35).Value) + 2) Step 1
        If Arkusz3.Cells(i, 35).Value = leksem Then
            Arkusz3.Cells(i, 36).Value = Arkusz3.Cells(i, 36).Value + 1
                SlownikBrakSlowa = False
                    Exit For
                        Else
                            SlownikBrakSlowa = True
                                End If
    Next i
End Function

napisał: Trebor
postów: 1209


umieszczony:
12 kwietnia 2012
21:52

  
Jeśli nikt nie odpowie to jutro z wieczora dokładniej przeanalizuję Twój kod.

Pozdrawiam
napisał: grizz
postów: 9


umieszczony:
12 kwietnia 2012
21:36

  
Ale dlaczego moje makro do słownika czasami w ogóle się nie włączają?
napisał: Trebor
postów: 1209


umieszczony:
12 kwietnia 2012
21:23

  
Zerknij na początek na poniższe makro:
Sub spisz()
Dim i As Long, dane, j As Integer, k As Long
For i = 1 To Cells(Rows.Count, 2).End(xlUp).Row
dane = Split(Cells(i, 2), " ")

For j = 0 To UBound(dane)

    For k = 2 To Cells(Rows.Count, "AI").End(xlUp).Row
        If dane(j) = Cells(k, "AI") Then Cells(k, "AJ") = Cells(k, "AJ") + 1: Exit For
        
    Next k
        If k > Cells(Rows.Count, "AI").End(xlUp).Row Then Cells(k, "AI") = dane(j)
Next j
Next i
End Sub

napisał: grizz
postów: 9


umieszczony:
12 kwietnia 2012
20:58

edytowany:
12 kwietnia 2012
21:10

  
Leksemy i WielkoscKlastra działają.

Nie działa dodawanie do slownika (czasami w ogóle się nie uruchamiają) - Makro w czasie rozbijania zdań na słowa sprawdza kolumnę ze słowami, czy to słowo występuje, jeśli tak, to dodaje 1 do ilości wystąpień tego słowa, jeśli nie, to dodaje słowo do kolumny i zwiększa wartość komórki przechowującej ilość słów w kolumnie.

1, AI - ilość słów w słowniku
AI - słowa
AH - numersłowa
AJ - ilość wystąpień słowa

kolumna A - słowa kluczowe
kolumna B - zdania

kolumny dalej przed AH - zdania podzielone na słowa
napisał: grizz
postów: 9


umieszczony:
12 kwietnia 2012
20:55

  
Chodzi o analizę leksemów.

SłowoKluczowe IlośćZdań
Zdanie SlowoZeZdania SlowoZeZdania ... NumerSlowa
Zdanie SlowoZeZdania SlowoZeZdania ... NumerSlowa

IloscSlowWSlowniku
NrSlowa Slowo IloscWystapień
... ... ....
napisał: Trebor
postów: 1209


umieszczony:
12 kwietnia 2012
19:32

  
Generalnie, czy zadaniem makra jest wykonanie listy słów w kolumny B?
napisał: grizz
postów: 9


umieszczony:
12 kwietnia 2012
13:09

  
Excel 2003. Procedura wywoływana z innej procedury (Leksem) nie zawsze działa. Poza tym nie działa jak trzeba, a wydaje mi się, że nie ma błędów.

Arkusz3
Leksemy - Rozbija zdania z drugiej kolumny na słowa i wypisuje je po prawej stronie, wrzuca każde słowo do DodajDoSlownika

WielkośćKlastra - liczy ilość zdań z danego hiperonimu (pierwsza kolumna) i wypisuje ją obok jego nazwy

DodajDoSlownika - Jeśli w słowniku nie ma danego słowa, to dodaje je na ostatnie miejsce w kolumnie AI, w kolumnie AH wpisuje numer słowa, a w AJ - 1

SlownikBrakSlowa - sprawdza kolumnę AI, czy jest tam podane słowo. Jeśli nie - false, zwiększa o jeden ilość wystąpień słowa w AJ.

1, AI - ilość słów w słowniku

http://dl.dropbox.com/u/60026233/Zeszyt1%20-%20Kopia.xls


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z