65.9K
CodeProject 正在变化。 阅读更多。
Home

Excel 摩尔质量计算器 - 分子量

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.50/5 (8投票s)

2019年1月8日

CPOL

1分钟阅读

viewsIcon

39769

downloadIcon

1205

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

相关文章

© . All rights reserved.