» »

[Excel VBA] združljivost verzij (Nemška v.)

[Excel VBA] združljivost verzij (Nemška v.)

mihafner8 ::

Pozdravljeni

V Excelu (VBA) sem prvič izdelal svoj nekoliko bolj resen program, na mojem računalniku je seveda delal odlično. Ko sem ga poslal kolegom sem ugotovil, da je program več kot samo pisanje kode.

Stvar je sledeča, program je stestiran v Excelu 2007 in 2010 v Slo. in Angl. verziji. Ko pa ga pošljem kolegom v Nemčijo in Avstrijo vsem javi napako: Run-time error '13' Type mismatch.

Kje bi lahko bili vzroki za to napako, sprašujem se o nastavitvah Excela, težava v kodi se mi ne zdi prav verjetna, ali pač…pošiljam del kode, kjer se mi zdi, da se »zatakne«:

Function MeasOutput()
'       UNPROTECT
    Sheets("RESULT").Select
    ActiveSheet.Unprotect Password:="E"

Dim FRow As Integer
FRow = 7
Dim Space As Integer
Dim Space1 As Integer
Dim Space2 As Integer
Dim Space3 As Integer
Dim Space4 As Integer
Dim Space5 As Integer
Dim Space6 As Integer
Space1 = 0

nn = 0

' NETWORK MEASURES

If UserForm1.NetworkMeas = False Then: GoTo Empty_1

        Sheets("RESULT").Cells(FRow, 2) = "NETWORK MEASURES:"
        Sheets("RESULT").Cells(FRow + 1, 2) = "CN:" 'določi kam naj izpiše CN! če je v 3 koloni mora biti barjavnje na koncu!
        Sheets("RESULT").Cells(FRow + 1, 4) = "MEASURE NAME:"
        Sheets("RESULT").Cells(FRow + 1, 16) = "MEASURE DESCRIPTION:"
            Columns("P:P").Select
            Columns("P:P").EntireColumn.AutoFit
 
' ***barvanje izpisa:
        Sheets("RESULT").Range(Cells(FRow, 2), Cells(FRow, 16)).Select
            e_Appearance.text1
        Sheets("RESULT").Range(Cells(FRow + 1, 3), Cells(FRow + 1, 2)).Select
            e_Appearance.text2
        Sheets("RESULT").Range(Cells(FRow + 1, 4), Cells(FRow + 1, 15)).Select
            e_Appearance.text2
        Sheets("RESULT").Range(Cells(FRow + 1, 16), Cells(FRow + 1, 16)).Select
            e_Appearance.text2
            
For i = 1 To N
    If Sheets("PRELIMINAR").Cells(E + i, 31) > "0" Then

            If UserForm1.NewOb = True And _
                Sheets("PRELIMINAR").Cells(E + i, 6) = 1 Then
                    nn = nn + 1
                    Sheets("RESULT").Cells(FRow + 1 + nn, 3) = Sheets("PRELIMINAR").Cells(E + i, 2)
                    Sheets("RESULT").Cells(FRow + 1 + nn, 4) = Sheets("PRELIMINAR").Cells(E + i, 3)
                        ' ***barvanje izpisa:
                        Sheets("RESULT").Range(Cells(FRow + 1 + nn, 2), Cells(FRow + 1 + nn, 3)).Select
                        e_Appearance.text3
                        Sheets("RESULT").Range(Cells(FRow + 1 + nn, 4), Cells(FRow + 1 + nn, 15)).Select
                        e_Appearance.text3
                        Sheets("RESULT").Range(Cells(FRow + 1 + nn, 16), Cells(FRow + 1 + nn, 16)).Select
                        e_Appearance.text3
            End If
            
            If UserForm1.RetrofittingOb = True And _
                Sheets("PRELIMINAR").Cells(E + i, 7) = 1 Then
                    nn = nn + 1
                    Sheets("RESULT").Cells(FRow + 1 + nn, 3) = Sheets("PRELIMINAR").Cells(E + i, 2)
                    Sheets("RESULT").Cells(FRow + 1 + nn, 4) = Sheets("PRELIMINAR").Cells(E + i, 3)
                        ' ***barvanje izpisa:
                        Sheets("RESULT").Range(Cells(FRow + 1 + nn, 2), Cells(FRow + 1 + nn, 3)).Select
                        e_Appearance.text3
                        Sheets("RESULT").Range(Cells(FRow + 1 + nn, 4), Cells(FRow + 1 + nn, 15)).Select
                        e_Appearance.text3
                        Sheets("RESULT").Range(Cells(FRow + 1 + nn, 16), Cells(FRow + 1 + nn, 16)).Select
                        e_Appearance.text3
            End If
            
            If UserForm1.NotImportant = True Then
                    nn = nn + 1
                    Sheets("RESULT").Cells(FRow + 1 + nn, 3) = Sheets("PRELIMINAR").Cells(E + i, 2)
                    Sheets("RESULT").Cells(FRow + 1 + nn, 4) = Sheets("PRELIMINAR").Cells(E + i, 3)
                        ' ***barvanje izpisa:
                        Sheets("RESULT").Range(Cells(FRow + 1 + nn, 2), Cells(FRow + 1 + nn, 3)).Select
                        e_Appearance.text3
                        Sheets("RESULT").Range(Cells(FRow + 1 + nn, 4), Cells(FRow + 1 + nn, 15)).Select
                        e_Appearance.text3
                        Sheets("RESULT").Range(Cells(FRow + 1 + nn, 16), Cells(FRow + 1 + nn, 16)).Select
                        e_Appearance.text3
            End If
        Else
            nn = nn
    End If
Next i

Space1 = 3
Empty_1:


Za kakršenkoli namig ali opis problema (glede na to da sem začetnik) bom nadvse hvaležen.

// Slo-Tech ima za namene lepljenja kode značko st.koda :) -- moderator
  • spremenil: Mavrik ()

mihafner8 ::

Pozdravljeni,

zanimiv vzrok napake sem odkril za rešitev mojega problema.
Nemške verzije Excela (in verjetno tudi kakšna druga) ima nemške ukaze za funkcije. Npr. Excelova funkcija Sum v Angl. in Slo. verziji, je v nemški Summe.
V mojem programu sem uporabil zapisovanje funkcij v celice, ki pa jih nemška verzija ni "razumela". Namesto Summe jezapisalo Sum.
Zato sem spremenil kodo, da program v celice piše številske vrednosti in zdaj dela v vseh verzijah.

Hvala in LP

kr?en ::

To so pa nemci, ko morajo vse prevest :D

Preveri slucajno se v italijanski verziji. Oni imajo tudi navado, da morajo vse prevest.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

rabib vba kodo za shranjevanje v bin (iz excella)

Oddelek: Programiranje
7883 (665) Silikon
»

kako v excelu avtomatsko obarvati celice

Oddelek: Programska oprema
104198 (3971) smetko
»

Calc/excel delo s tabelo

Oddelek: Programiranje
131467 (1234) salabajs
»

[VB] excel makro, VB program ali kaj drugega

Oddelek: Programiranje
52364 (2364) Tutankhamun
»

[Excel] problem z makrojem, visual basic (strani: 1 2 )

Oddelek: Programiranje
585707 (5170) steev

Več podobnih tem