Predlažem ti da počneš hitno da učiš VBA, jer vidim da često imaš ovakve probleme. Jako je teško rešiti to u excel formuli a trivijalno u VBA. Evo šta sam sklepao za 15min.
Sub Main Dim pm,sh as Object dim a,b as String dim n,l1,dig as integer dim sol(1 to 9),v as double
n=3 Set pm = CreateObject(`PlanMaker.Application`) set sh= pm.Application.ActiveSheet a=str(sh.range(`a1:a`&str(n)).item(1).value)
l1=1 for i =1 to 9 c$=str(i) sol(l1)=1 for j=1 to n dig=InStr(1,str(sh.range(`a1:a`&str(n)).item(j).value),c$) if dig=0 then sol(l1)=0 end if next j if sol(l1)=1 then sh.range(`b1:b9`).item(l1).value=i l1=l1+1 end if next i End Sub
Nažalost, nemam trenutno excel već softmakerov ofice, mislim da treba samo da promeniš u Set pm komandi umesto PlanMaker staviš excel i trebalo bi da radi. Znači otvoriš neku tabelu i upišeš ta 3 broja od a1 nadole, staruješ script i u B koloni ćeš dobiti brojeve koji se ponavljaju.
Naravno, za rad sa matricama i nizovima podataka matlab je zakon, ali ne znam da li ima OLE Automation, da bi ga povezao sa excelom. edit: stringovi idu sa doublequotes a ne sa single kao što je u listingu
arsaD, to znam. Čak sam to radio i u srednjoj. U svakom slučaju hvala.
Dragg, ušao sam u Eksel i u Microsoft Visual Basic. U Module sam ubacio ovu tvoju skriptu, sredio navodnike, sačuvao sve, ali nema nikakvih rezultata u tabeli Eksela.
Pošto ovo nikad nisam radio, najverovatnije sam negde pogrešio.
Evo kako sam odradio:
Ispisao one brojke od gore, od A1 pa nadalje.
Ušao ALT+F11 u Visual Basic, pa u Module, ubacio tvoju skriptu, sredio navodnike, sačuvao, vratio se u Eksel, ali ništa.
Aj, ako znaš gde sam pogrešio napiši mi, pa da vidim da li ću ovo moći da koristim na konkretnom primeru ili da znam da ne vredi pa da krenem polako ručno.
Pa moraš da startuješ scriptu - run. Alternativno, možeš da da staviš neki objekat na ekran excela (npr dugme) i da povežeš script sa njim ali onda kod ne ide u module nego u kod tog objekta. Ako ti debugger prijavi neku grešku javi, pa će vidimo.
Da sad ne zamaram i tebe i sebe, nije ništa hitno. Moram da idem, sutra moram ranije da ustanem...
Kad budeš imao vremena vidi u čemu je problem, ako ne, nema veze.
U svakom slučaju, hvala još jednom na pomoći.
P.S. Ako možeš ovako da rešiš problem super, a nemoj zbog mene da se cimaš i instaliraš Eksel.Nije toliko hitno, pa ni bitno da se toliko zjbš oko toga.
Ma nema veze i mene je zanimalo gde škripi. Problem sa objektima je lako rešen, ali sam 45min ubio dok nisam shvatio da u excelu 2007 postoji bug u funkciji STR. Kakve gluopsti, koga oni zajebavaju -`alat za profesionalce`. Evo ispravnog listinga, možeš da ga staviš u sheet1 objekat, ne mora da ide u module. Verovatno si već shvatio da ti komanda n=3 određuje broj ćelija sa brojevima u kojima tražiš cifre.
Sub Main() Dim sh As Object Dim n, l1, dig, i, j As Integer Dim sol(1 To 9) As Double
n = 3
Set sh = ActiveSheet l1 = 1
For i = 1 To 9 c$ = Right(Str(i), 1) sol(l1) = 1 For j = 1 To n dig = InStr(1, Str(sh.Cells(j, 1).Value), c$) If dig = 0 Then sol(l1) = 0 End If Next j If sol(l1) = 1 Then sh.Cells(l1, 2).Value = i l1 = l1 + 1 End If Next i End Sub
Broj postavljenih tema: 60373. Broj poslatih odgovora: 647177. Trenutno niste prijavljeni na PC Berzu i zbog toga imate status 'gosta'. Kao gost ne možete da šaljete poruke na Forum. Ako ste registrovani kao član PC Berze, prijavite se. Ako ste novi korisnik, molimo registrujte se da bi dobili mogućnost aktivnog učešća u radu Foruma.