..|| Blog || Produkti/Storitve || MExcel || MDodatki || 300 nasvetov ||..

VBA pomoč- razlaga makrov

Pomoč pri izdelavi makrov

VBA pomoč- razlaga makrov

OdgovorNapisal/-a pelako » To sep 13, 2016 10:23 am

Pozdravljeni!

Bi mi lahko kdo prosim pomagal in opisal kodo v VBA excel. Zakaj je kaj?


Sub ChemFormat()

Dim c
Dim PrevNum
Dim s

PrevNum = 1

s = ActiveCell.Value

For c = 1 To Len(s)

If IsNumeric(Mid(s, c, 1)) And PrevNum <> 1 Then

ActiveCell.Characters(c, 1).Font.Subscript = True
PrevNum = 1
Else
PrevNum = 0
Count = Count + 1

End If
Next c
End Sub

Hvala.
Zadnjič spremenil pelako, dne To sep 13, 2016 11:52 am, skupaj popravljeno 1 krat.
pelako
 
Prispevkov: 4
Pridružen: Po sep 12, 2016 4:02 pm



Matjazev.NET
 

Re: VBA pomoč

OdgovorNapisal/-a admin » To sep 13, 2016 10:31 am

Pozdravljeni,

Vi torej želite razlago, kaj in kako makro deluje?

PS: Naslov tematike prosim izberite bolj opisen, "VBA pomoč" ne pove ravno dosti.
lp,
Matjaž Prtenjak
Administrator
admin
Site Admin
 
Prispevkov: 3524
Pridružen: Sr jul 20, 2005 10:06 pm

Re: VBA pomoč

OdgovorNapisal/-a pelako » To sep 13, 2016 11:51 am

Ja razlago makrov kako delujejo. bom popravila naslov
pelako
 
Prispevkov: 4
Pridružen: Po sep 12, 2016 4:02 pm

Re: VBA pomoč- razlaga makrov

OdgovorNapisal/-a admin » To sep 13, 2016 12:02 pm

Dobro, tega vam lahko razložim, čeravno ne razumem, čemu vam bo razlaga služile?

Torej:
[code]
Sub ChemFormat()
' deklaracija spremenljiv
Dim c
Dim PrevNum
Dim s
Dim Count ' to vam Manjka (!)

' predpostavimo, da je prejšnja črka pravzaprav cifra
PrevNum = 1

' preberemo vsebimo trenutne celice
s = ActiveCell.Value

' v zanki pregledamo vsak znak v vsebini trenutne celice
For c = 1 To Len(s)

' v kolikor je trenutni znak cifra, prejšnji znak pa ni bil cifra potem ga podpišemo
If IsNumeric(Mid(s, c, 1)) And PrevNum <> 1 Then
' podpišemo cifro
ActiveCell.Characters(c, 1).Font.Subscript = True

' označimo, da je cifra
PrevNum = 1
Else
' označimo, da ni šlo za podpisano cifro
PrevNum = 0

' povečamo števec, kar je pravzaprav povsem brezveze, saj tega ne uporabimo drugje
Count = Count + 1
End If
Next c
End Sub
[code]

Funkcija naj bi torej urejala kemijske enačbe, saj podpisuje cifre. Vendar kolikor se jaz spoznam na kemijo so lahko cifre tudi večje od 9, kar pomeni, da ta funkcija ne deluje povsem pravilno za vse kemijske enačbe
lp,
Matjaž Prtenjak
Administrator
admin
Site Admin
 
Prispevkov: 3524
Pridružen: Sr jul 20, 2005 10:06 pm

Re: VBA pomoč- razlaga makrov

OdgovorNapisal/-a pelako » To sep 13, 2016 4:46 pm

Hvala lepa.

Nekaj pri diplomi rabim in morem razložiti. Vas lahko prosim, če bi mi še en primer razložili. gre za Redlich-Kwongova enačbo stanja:

Option Explicit
Type ChemData
Compound As String * 15
Tc As Double
Pc As Double
End Type
Sub RecordTest()
Dim Chem(20) As ChemData
Dim i As Integer
Dim T As Double, V As Double
Dim Pideal As Double, Prk As Double
Dim a As Double, b As Double
Const R As Double = 0.08205 'gas constant
Range("a3").Select
For i = 1 To 4
Chem(i).Compound = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
Chem(i).Tc = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
Chem(i).Pc = ActiveCell.Value
ActiveCell.Offset(1, -2).Select
Next i
T = InputBox("Temperature (K) = ")
V = InputBox("Volume (L) = ")
Pideal = R * T / V
Range("d3").Select
For i = 1 To 4
a = 0.4278 * R ^ 2 * Chem(i).Tc ^ 2.5 / Chem(i).Pc
b = 0.0867 * R * Chem(i).Tc / Chem(i).Pc
Prk = R * T / (V - b) - a / (Sqr(T) * V * (V + b))
ActiveCell.Value = Pideal
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Prk
ActiveCell.Offset(1, -1).Select
Next i
End Sub
pelako
 
Prispevkov: 4
Pridružen: Po sep 12, 2016 4:02 pm

Re: VBA pomoč- razlaga makrov

OdgovorNapisal/-a admin » To sep 13, 2016 8:57 pm

Pozdravljeni,

Tovrstno pomoč vam lahko nudim kot plačljivo storitev.
lp,
Matjaž Prtenjak
Administrator
admin
Site Admin
 
Prispevkov: 3524
Pridružen: Sr jul 20, 2005 10:06 pm

Re: VBA pomoč- razlaga makrov

OdgovorNapisal/-a pelako » To sep 13, 2016 9:35 pm

Potem pa prosim ja
pelako
 
Prispevkov: 4
Pridružen: Po sep 12, 2016 4:02 pm


Vrni se na VBA

Kdo je prisoten

Po forumu brska: 0 registriranih uporabnikov in 1 gost

cron