Jump to content

Excel VBA Makrosi


GUNIS95
 Share

Recommended Posts

Sveiki
Man ir šāda problēma man vajag lai makross pārbauda vai šūnas vērtība ir vienāda ar kādu no datu kopas vārdiem {Food,Drink,Book utt.} ja vērtība nav vienāda, tad izvadīt kļūdas paziņojumu katru reizi ja šūnas vērtība neatbilst nosacījumam, ja šūnu vērtības visā kolonnā atbilst tad beigās izvadīt 1 paziņojumu.
 
esmu ticis tik tālu:

test = True
x = 3
Do While (Cells(x, "G").Value <> "") And (Cells(x, "F").Value <> "")
If Cells(x, "G").Text <> "Food" Or "Drink" Or "Grant" Or "Parents" Or "Books" Or "Fees" Then MsgBox ("Dati nav pareizi!")
test = False
Else: test = True
x = x + 1
Loop
If test = True Then MsgBox ("Dati atbilst datu kopai:{Food,Drink, Grant,Parents, Books, Fees}")
End Sub
Link to comment
Share on other sites

Neko tālu tikts nav.

Šūnas adresēt vajag savādāk.

Vērtības nevar salīdzināt kā sarakstu - jāsalīdzina katra. Un jālieto lõģiskais operātors AND,

Mājasdarbs informātikā? 

Link to comment
Share on other sites

  • 5 months later...

Atļāvos pieslieties autora tēmai, par cik problēma saistīta ar makrosu (nezinu tieši vai netieši)

 

Ir tāda lieta, kā SummaVārdiem funkcija.

 

Klients nomigrēja no Win7 uz 8.1 un no Office 2007 uz Office 365 (clean install)

 

sākas gļuks -

 

 

ciparam vajadzētu būt -

 

Viens tūkstotis seši simti septiņdesmit astoņi eiro, 98 centi

 

bet ir  -

 

 

Viens tûkstotis seði simti septiòdesmit astoòi eiro, 98 centi

 

visās pārējās šūnās garumzīmes un mīkstinājuma zīmes nekropļo, tikai tajā, kur tiek attēlota funkcija.

Labots - Red
Link to comment
Share on other sites

man, kad bija līdzīga problēma laikam pēc reģ sett maiņas, atvēru ar vb editoru un samainīju vajadzīgos burtus, īpaši neiedzilinoties problēmas būtībā.

Kopš tā laika strādā ok

  • Patīk 1
Link to comment
Share on other sites

Savā kodā neredzu problēmu, visi burti izskatās un attēlojas pareizi. 

 

Kā tieši tev attēloja kļūdainos burtus VB editorā? arī ņčūsš utt? 

Link to comment
Share on other sites

versatile

Iespējams, ka vecais vba kods nav saglabāts unikodā, bet iekš baltics vai tamlīdzīga. Tāpēc arī jālabo. Jaunie, cik zinu, pēc defaultā nāk unikodā. Iespējams, pietiek kodu pārkopēt uz jaunu excel failu vai arī tikai jaunu moduli.

Link to comment
Share on other sites

Ar reģionālajiem settingiem šitam diez vai būs sakars, drīzāk Versatile variants izklausās pieņemamāks.

Atrisināšu, neturēšu sveci zem pūra :)

Link to comment
Share on other sites

 

 

Savā kodā neredzu problēmu, visi burti izskatās un attēlojas pareizi.    Kā tieši tev attēloja kļūdainos burtus VB editorā? arī ņčūsš utt? 
 

 

neatceros, 10 minūtēs izlaboju un aizmirsu ;)

 

lietoju uz win7 office 2002pro

 

āāāāāā, vēl trakāk, atcerējos, kādu laiku lietoju "risinājumu" - substitute(substitute(substitute(substitute()))))), kurš mainīja nepareizos burtus pret pareiziem, 

tagad laikam esmu vb pārlabojis, jo substitute vairs neredzu :hvz:

 

tagad šādu lietoju https://www.dropbox.com/s/4bxfkdkebm34j1y/svu.bas?dl=0


ja bail vērt vaļā, var vispirms ar notepadu iepazīties

Link to comment
Share on other sites

Izskatās pēc pilnīga vājprāta :D

Ar notepad esmu pazīstams ;)

Link to comment
Share on other sites

Tas ir pa internetu klīstošais "summa vārdiem", kuram kautkas negāja un kautkas tika papildināts, ja pareizi atminos :D

Link to comment
Share on other sites

Ar reģionālajiem settingiem šitam diez vai būs sakars

Datorserviss saucas. Nu ja pats tik gudrs, tad ko vēl jautā? Te pilnīgi prasās pēc McB stiprajiem izteicieniem.

Windows code page (ANSI) esi dzirdējis?

 

 

sākas gļuks

Gļuks viņam sākas. :sarkasms:

Atver notepad-u, iekopē to savu: Viens tūkstotis seši simti septiņdesmit astoņi eiro, 98 centi

Saglabā. Un tagad atver to dokumentu ar Firefox. Ko tu redzēsi?

Es tev pateikšu ko: Viens tûkstotis seði simti septiòdesmit astoòi eiro, 98 centi

Jo kāds ir encoding? View->Character Encoding->Western jeb Windows-1252

Kāds ir vajadzīgs? Baltic (Windows) jeb Windows-1257

Control panel -> Region and Language -> Administrative -> Language for non-Unicode programs -> Latvian

Versatile variants izklausās pieņemamāks

Nu tad kopē  pēc viņa receptes ko un cik gribi.

The Windows VBA IDE only supports typing and displaying characters in the current system locale.

Current system locale latviešu valodai kā reiz ir Latvian, saprotams ja?

Ja gribi baigi spītēties un konvertēt to latviešu valodas tekstu no ANSI uz Unicode, tad vari ņemt piemēru no ķīniešiem, bet pirms tam noskaidro, kādā kodējumā ir pats excel fails UTF-8 UTF-16 vai ANSI (ja ANSI, tad kurš tieši).

Labots - HIGH-Zen
Link to comment
Share on other sites

Uz uzbraucieniem par servisu-neservisu, atļaušos atbildēt, ka tas ir mans blakusprojekts un nav galvenais maizes darbs. Par saviem pakalpojumiem vienmēr nesu atbildību un . vai moneybacku ja kaut ko nevaru / nemāku izdarīt / kaut kas sabojājies manu darbību rezultātā.

 

Visu viens cilvēks nekad nevar zināt. Pie tam šis vairāk velk uz programmistu pusi, kur nepieciešams zināt šādas lietas. Es vairāk ņemos ar skrūvēšanu un mehānisko defektu novēršanu.

 

Palasīju kas tev zem profila rakstīts, nuja, principā esi koderis, tāpēc nav brīnums ka visu šo noskaitīji kā alfabētu :)

Lai nu kā,  paldies par atbildēm :)

Link to comment
Share on other sites

Nu ok, skaidrs, ka viens visu nevar zināt, arī par servisu-neservisu. Tikai dažreiz sāk kaitināt, ka lasi kā aklais kurlajam ceļu rāda. Bet kad dod cilvēkam reālu padomu, kā pāris sekundēs visu labot, tad izrādās, ka laikam nevajadzēja, paši visu labāk zin.

 

Edit:

Savā laikā esmu arī servisā strādājis, bet jā tagad vairāk ar programmēšanu. Neskaitot vēl tutačuesidatorspeciālists specialitāti.

Labots - HIGH-Zen
Link to comment
Share on other sites

  • 3 weeks later...

Lai nu sasper mani HIGH-Zen dusmas vai sašutums, bet - 

 

Vienam no kompjiem tiku galā ar language for non unicode programms maiņu, ko pirms tam jau biju mēģinājis uz kompja, kur problēma parādījās - tam nestrādāja. 

 

Uz pirmā kompja, kur šaize tika konstatēta, tika iziets cauri pilnīgi visu regional settingu darbībām ar tamburīnu , mainītas OS un Office valodas un kas tik vēl nē,  - no success

 

Solution - iekopēju tekstu @ notepad, Save As -> Unicode, izdzēsu no VBA moduļa veco kodu un iepeistoju no notepada - 

 

works like bjūtī.  Kāpēc viens PC paņēma normāli caur Language for non Unicode, otrs nē, nav man tā arī saprotams. 

 

Abiem kompjiem atšķirība tik tā, ka vienam ir 64Bit OS un Office, otram 32...

Link to comment
Share on other sites

HIGH-Zen

Un saspers arī.
Tās darbības, kuras tiek veiktas aiz vārda Solution, neveic pilnīgi neko izņemot, ka saglabā teksta dokumentu ar kodējumu UTF-16 LE uz diska.

Excel dokuments kāds bija, tāds arī palika.

Nokopēji tekstu Windows-1257 kodējumā un iepeistoji tekstu Windows-1257 kodējumā = rezultāts paliek nemainīgs. Paņem ClipSpy un paskaties pats.

Tāpēc arī tev nav saprotams, jo vienīgās izmaiņas, kas notika - tika samainīta Language for non-Unicode programs.
 

Link to comment
Share on other sites

Nu bet tas neiztur kritiku kamdēļ kā jau teicu pēc plikas Language for non Unicode programms pāriestatīšanas nemainījās pilnīgi nekas!

 

Izmaiņas tika veiktas un apstiprinātas vairākas reizes, kompis restartēts vairākas reizes. Ofiss aizvērts un atvērts, utt. un katru reizi pārbaudīts, strādā vai nē! 

 

Ķeburi pazuda tikai pēc koda pārpiestošanas no Notepad! 

Link to comment
Share on other sites

HIGH-Zen

Nu ja jau nemainījās, tad samaini Language for non-Unicode programs atpakaļ, kāda tā tur bija iepriekš :sarkasms:

Link to comment
Share on other sites

Pamēģināšu joka pēc ar :)

 

Es nesaku ka tev nav taisnība, vienkārši mistiskā kārtā Unicode settingi nedarbojās un viss!

Link to comment
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!

Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...