Excel 摩尔质量计算器 - 分子量
Excel,纯 VBA 宏:分子量/摩尔质量计算器
引言
什么是分子量
分子量或分子质量是分子的质量。它通过将分子式中每个组成元素或元素组的原子质量乘以其数量来计算得出。
有些分子式很简单,例如 CaCO3
,但也有复杂的分子式,例如 Co3[Fe(CN)6]2.4NH3.6H2
,而一些有机化合物则更加复杂。
计算摩尔质量
在本文中,我们将解释如何编写纯 Excel VBA 宏来计算化学公式的分子量或摩尔质量。
计算完全通过纯 VB 代码完成,无需任何额外的引用或库,代码极其简单。
添加了错误处理程序和行号,以简化代码调试。
Using the Code
下载并打开 Excel 文件并根据需要进行编辑。公式更改后,质量将更新。要在单元格中计算公式,只需键入类似 =MW("CaCO3")
的内容即可。
公式 | 分子量 |
CuSO4 | 159.6 |
CaCO3 | 100.1 |
Co3[Fe(CN)6]2 . 4NH3 . 6H2O | 776.9 |
2Na2CO3 . 3H2O2 | 314.0 |
Na2CO3 . 1.5H2O2 | 157.0 |
NaBO2 . H2O2 . 3H2O | 153.9 |
工作原理
首先,我们将元素质量存储在普通的 VBA 键控集合中。
Private Sub SetAtomicMass()
On Error GoTo ErrorHandler
1: Call Masses.Add(1.00794!, "H")
2: Call Masses.Add(4.002602!, "He")
3: Call Masses.Add(6.941!, "Li")
4: Call Masses.Add(9.012182!, "Be")
5: Call Masses.Add(10.811!, "B")
Rem and so on to
118: Call Masses.Add(294, "Og")
Exit Sub
ErrorHandler:
Debug.Print ("Error in: MMW.SetAtomicMass." & Erl & vbNewLine & Err.Description)
Debug.Assert (False)
Call MsgBox("Error in: MMW.SetAtomicMass." & Erl & vbNewLine & Err.Description)
End Sub
要计算 NaBO2 . H2O2 . 3H2O 的质量,我们将其分解为部分,NaBO2、H2O2、3H2O。
我们将每个部分(如 H2O)分解为组 H2 和 O。
计算每个组的质量,并将它们加在一起以获得总质量。
Parts = Split(GetParts(Formula), ", ")
For Each Part In Parts
PartCount = GetPartCount(Part)
PartSymbol = GetPartSymbol(Part)
PartMass = 0
Groups = Split(GetGroups(PartSymbol), ", ")
For Each Group In Groups
GroupCount = GetGroupCount(Group)
GroupSymbol = GetGroupSymbol(Group)
SymbolMass = GetSymbolMass(GroupSymbol)
If SymbolMass = 0 Then
MolecularWeight = 0
Exit Function
End If
GroupMass = GroupCount * SymbolMass
PartMass = PartMass + GroupMass
Next
PartMass = PartCount * PartMass
Mass = Mass + PartMass
Next
MolecularWeight = Mass
相关文章
- 本文是我文章 Office 编程助手 的一部分,现已移至此处。
- 请参阅我的博客上的这篇文章