VBA pomoč- razlaga makrov

Pomoč pri izdelavi makrov
Odgovori
pelako
Prispevkov: 4
Pridružen: Po Sep 12, 2016 4:02 pm

VBA pomoč- razlaga makrov

Odgovor Napisal/-a pelako »

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.
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: VBA pomoč

Odgovor Napisal/-a admin »

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
pelako
Prispevkov: 4
Pridružen: Po Sep 12, 2016 4:02 pm

Re: VBA pomoč

Odgovor Napisal/-a pelako »

Ja razlago makrov kako delujejo. bom popravila naslov
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: VBA pomoč- razlaga makrov

Odgovor Napisal/-a admin »

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

Torej:

Koda: Izberi vse

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
pelako
Prispevkov: 4
Pridružen: Po Sep 12, 2016 4:02 pm

Re: VBA pomoč- razlaga makrov

Odgovor Napisal/-a pelako »

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
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: VBA pomoč- razlaga makrov

Odgovor Napisal/-a admin »

Pozdravljeni,

Tovrstno pomoč vam lahko nudim kot plačljivo storitev.
lp,
Matjaž Prtenjak
Administrator
pelako
Prispevkov: 4
Pridružen: Po Sep 12, 2016 4:02 pm

Re: VBA pomoč- razlaga makrov

Odgovor Napisal/-a pelako »

Potem pa prosim ja
Odgovori