1. 为什么要在 Excel 里折腾实时汇率做过跨境电商、海外代购、外贸跟单或者留学财务的朋友大概率都遇到过同一个痛点Excel 表格里的金额永远是静态的。今天填进去的美元数字明天汇率一变整张表的利润核算就全废了。手动去查汇率再改单元格一天两天还行时间一长表格里几十上百行数据改到怀疑人生。我最早接触这个需求是在帮一个做亚马逊的朋友整理月度报表。他每个月要从后台导出几百条订单币种五花八门有美元、欧元、英镑、日元。最开始的做法是每天早上去搜索引擎查一次汇率然后手动填到一个固定单元格里再用公式去乘。听起来好像也能用但问题在于第一他经常忘第二搜索引擎给的汇率是中间价实际结算价和这个有偏差第三一旦表格发给财务对方打开时汇率已经过期了数据对不上。后来我就琢磨Excel 本身有没有办法直接拉取实时汇率答案是有的而且不止一种路子。这篇文章就把我这些年试过的几种方案完整拆一遍从最简单的内置功能到稍微需要一点动手能力的自动化方案都会讲到。不管你是 Excel 小白还是已经会写 VBA 的老手应该都能找到适合自己的那一款。核心关键词就几个Excel、实时汇率、数据类型、货币。围绕这几个词我会把原理、操作步骤、踩过的坑、以及不同方案的适用场景全部讲清楚。目标很明确让你看完之后能自己在 Excel 里搭出一个自动更新的汇率表不用每天手动查。2. 先搞清楚汇率数据的来源和类型2.1 实时汇率到底从哪里来在动手之前有必要先弄明白一件事Excel 本身并不生产汇率数据它只是一个搬运工。真正的汇率数据来自各个金融数据源Excel 通过某种方式去把这些数据“拿”回来。常见的来源有几类。第一类是官方机构发布的参考汇率比如一些央行或金融管理部门每天会公布一个中间价这种数据权威但更新频率低通常一天一次。第二类是商业银行的挂牌汇率分买入价和卖出价更贴近实际换汇场景。第三类是市场实时报价波动频繁适合对时效性要求高的场景。Excel 能对接的主要是前两类因为第三类通常需要专业的金融数据终端。对于绝大多数做报表、做核算的人来说一天更新一次甚至一天更新几次的汇率已经完全够用了。这一点想清楚后面选方案的时候就不会纠结“为什么不能每秒刷新”这种问题。注意不同来源的汇率差异可能不小。如果你是用在财务核算上一定要确认公司财务认可哪个来源别自己随便选一个到时候对不上账就麻烦了。2.2 Excel 里的“数据类型”是什么概念很多人第一次听说 Excel 能获取汇率是因为看到了“数据类型”这个功能。微软在 Excel 2016 之后的版本里加入了一组“数据类型”可以把单元格里的文本自动识别成股票、地理、货币等结构化数据。举个例子你在单元格里输入“USD/CNY”然后把它转换成“货币”数据类型Excel 就会自动去联网抓取相关的汇率信息并在单元格右侧显示一个小图标。点开图标还能看到更多字段比如当前汇率、涨跌幅、更新时间等。这个功能的本质是Excel 把外部数据源的数据拉过来缓存在工作簿里并以一种结构化的方式呈现。它和传统的“导入外部数据”最大的区别在于数据类型是绑定在单元格上的你可以像引用普通单元格一样引用它也可以用公式去取它的某个字段。但这里有个关键点数据类型获取的汇率不是真正意义上的“实时”。它有一个刷新机制通常是每隔一段时间自动刷新或者你手动点刷新。具体频率取决于微软的数据源策略我实测下来大概是几分钟到十几分钟一次。对于日常报表来说够用但如果你需要精确到秒那这个方案就不合适。2.3 货币数据类型支持哪些币种这是很多人关心的问题。Excel 的货币数据类型支持的币种范围还是比较广的主流货币基本都覆盖了包括美元、欧元、英镑、日元、港币、澳元、加元、瑞士法郎等等。一些冷门币种可能支持得不够好或者干脆没有。我的建议是在正式用之前先拿你需要的币种试一下。方法很简单在一个空单元格里输入币种代码对比如“EUR/USD”然后尝试转换成货币数据类型。如果能识别出来并且能看到汇率字段那就说明支持。如果识别失败或者字段是空的那就得换方案。另外要注意货币数据类型在不同版本的 Excel 里表现可能不一样。Microsoft 365 的版本更新最及时功能也最全。Excel 2019 和 2021 虽然也有这个功能但数据源的更新频率和字段丰富度可能略逊一筹。如果你用的是更老的版本比如 Excel 2013 或 2016 早期版本那可能根本没有这个功能只能走后面的 VBA 或 Power Query 路线。3. 用内置数据类型获取汇率最省事的方案3.1 操作步骤详解先说最简单的方案适合不想写任何代码的人。前提是你的 Excel 版本是 Microsoft 365 或者 Excel 2019 以上并且能正常联网。第一步找一个空白单元格输入你想查询的货币对。格式一般是“基础货币/目标货币”比如你想知道 1 美元换多少人民币就输入“USD/CNY”。注意中间用斜杠不要用空格或者其他符号。第二步选中这个单元格然后在顶部菜单栏找到“数据”选项卡。在“数据类型”区域你会看到“货币”这个按钮。点它。第三步如果一切顺利单元格里的文本会变成一个有图标的状态表示已经成功转换成了货币数据类型。这时候你把鼠标悬停在单元格上或者点击单元格右侧出现的小图标就能看到一个数据卡片里面列出了各种字段包括当前汇率、涨跌额、涨跌幅、更新时间等。第四步如果你想把汇率提取到一个普通单元格里方便计算可以用公式。比如单元格 A1 是货币数据类型你在 B1 里输入A1.汇率或者A1.Price具体字段名取决于你的 Excel 语言版本就能把汇率值取出来。取出来之后就是一个普通数字可以参与各种计算。3.2 批量获取多个币种汇率一个一个输入太慢如果你需要同时获取多个币种的汇率可以批量操作。方法是在一列里把所有需要的货币对都列出来比如 A1 到 A10 分别填“USD/CNY”“EUR/CNY”“GBP/CNY”“JPY/CNY”等等。然后选中这一整片区域再点“货币”数据类型按钮。Excel 会尝试把每一个都转换成功的会显示图标失败的会显示一个问号或者错误提示。转换成功之后你可以在旁边一列用公式批量提取汇率。比如 B1 输入A1.汇率然后往下拖拽填充就能把所有币种的汇率都取出来。这里有个小技巧如果你经常需要更新汇率可以把这片区域做成一个表格CtrlT这样每次刷新的时候表格会自动扩展公式也会自动填充省去手动调整的麻烦。3.3 刷新机制与时效性说明前面提到了数据类型不是真正实时的。那它到底多久刷新一次呢根据我的实测经验Excel 的货币数据类型在联网状态下大约每隔 5 到 15 分钟会自动刷新一次。具体时间不太固定可能和微软服务器的负载、你的网络状况都有关系。你也可以手动刷新右键点击有数据类型的单元格选择“刷新”或者在“数据”选项卡里找到“全部刷新”按钮。另外当你关闭工作簿再重新打开时Excel 会尝试重新连接数据源并刷新数据。如果这时候网络不通它可能会显示上一次缓存的值并在单元格上显示一个警告图标。提示如果你把含有货币数据类型的工作簿发给别人对方打开时如果网络不通或者版本不支持可能看不到最新的汇率只能看到你保存时的缓存值。所以如果是发给外部人员建议先把汇率值“粘贴为数值”固化下来避免尴尬。3.4 这个方案的优缺点总结优点很明显不需要写代码不需要额外安装任何东西操作门槛极低几分钟就能上手。对于偶尔用用、对时效性要求不高的场景这已经是最好的方案了。缺点也有几个。第一币种支持有限冷门货币可能查不到。第二刷新频率不可控你没法强制它每秒更新。第三依赖网络和微软的数据服务如果服务出问题或者网络不通数据就更新不了。第四不同 Excel 版本表现不一致兼容性是个隐患。我个人的建议是如果你只是做月度报表、季度核算用这个方案完全够了。但如果你需要更精细的控制比如指定数据源、指定刷新时间、或者需要记录历史汇率那就得看下面的方案。4. 用 Power Query 打造可定制的汇率获取流程4.1 Power Query 是什么为什么用它Power Query 是 Excel 里一个非常强大的数据获取和转换工具在 Excel 2016 之后是内置的不需要额外安装。它的核心能力是从各种外部数据源网页、API、数据库、文件等抓取数据然后进行清洗、转换、合并最后加载到 Excel 表格里。用 Power Query 获取汇率的好处在于你可以自己指定数据源自己控制刷新逻辑而且整个过程是可重复的。一旦配置好以后每次只需要点一下“刷新”它就会自动去抓最新的数据按照你设定的规则处理好然后更新到表格里。和内置的货币数据类型相比Power Query 更灵活但门槛也稍微高一点。你需要理解“查询”的概念知道怎么配置数据源怎么写简单的转换步骤。不过别担心下面我会一步步讲。4.2 从网页抓取汇率数据很多金融网站都会提供汇率查询页面这些页面上的数据可以通过 Power Query 抓取。具体操作如下第一步在 Excel 里点击“数据”选项卡然后找到“获取数据”或者“新建查询”选择“从其他源”里的“从 Web”。第二步在弹出的对话框里输入汇率页面的网址。注意不是所有网页都能抓最好是那种表格结构清晰的页面。输入之后点确定。第三步Power Query 会去分析这个页面然后列出它找到的所有表格。你从左侧列表里选择包含汇率数据的那个表右侧会显示预览。确认无误后点击“加载”或者“转换数据”。如果选择“转换数据”会打开 Power Query 编辑器你可以在里面进一步清洗数据比如删除不需要的列、修改列名、调整数据类型等。处理完之后点击“关闭并上载”数据就会加载到 Excel 的一个新工作表里。注意网页抓取有个很大的不确定性——网页结构可能会变。今天能抓的页面明天网站改版了可能就抓不到了。所以这个方法适合对稳定性要求不那么极端的场景而且最好定期检查一下查询是否还正常工作。4.3 通过 API 接口获取结构化汇率数据比网页抓取更稳定的方式是用 API。很多汇率数据服务商会提供免费的 API 接口返回 JSON 或 XML 格式的数据。Power Query 可以直接解析这些格式。操作思路是这样的在 Power Query 里新建一个“从 Web”的查询输入 API 的请求地址。如果 API 需要密钥可能还需要在请求头里加上认证信息。返回的 JSON 数据会被 Power Query 自动解析成表格形式你再从中提取需要的字段。这种方式的优点是数据结构稳定不会因为网页改版而失效。缺点是需要自己去申请 API 密钥而且免费额度通常有限制比如每月只能调用多少次。对于个人使用来说免费额度一般够用。我在实际项目里用过几种不同的汇率 API体验差异挺大的。有的返回数据很干净直接就能用有的字段嵌套很深需要在 Power Query 里写不少转换步骤才能整理成想要的格式。选 API 的时候除了看汇率是否准确还要看返回的数据结构是否友好。4.4 设置自动刷新频率Power Query 的一个好处是可以设置自动刷新。在 Excel 里点击“数据”选项卡找到“查询和连接”面板右键点击你的查询选择“属性”。在弹出的对话框里你可以勾选“启用后台刷新”和“刷新频率”比如每 30 分钟刷新一次。如果你希望打开文件时就自动刷新可以勾选“打开文件时刷新数据”。这样每次打开工作簿它都会去拉最新的汇率省去手动操作的麻烦。不过要注意自动刷新需要 Excel 处于打开状态而且电脑不能休眠。如果你希望即使 Excel 没打开也能定时更新那就需要更复杂的方案比如用 Windows 任务计划程序去调用脚本这就超出 Excel 本身的范围了。5. 用 VBA 写一个自己的汇率抓取函数5.1 VBA 方案的适用场景如果你对 Excel 的内置功能不满意又觉得 Power Query 的配置太繁琐那 VBA 可能是最灵活的选择。VBA 是 Excel 内置的编程语言你可以用它写一个自定义函数直接在单元格里调用就像用 SUM 或 VLOOKUP 一样。VBA 方案的最大优势是自由度高。你可以自己决定从哪里抓数据、多久抓一次、怎么解析、怎么缓存。而且一旦写好使用起来非常方便一个公式就能搞定。缺点也很明显需要写代码对新手不太友好而且 VBA 的网络请求能力相对有限处理复杂的 API 认证可能比较麻烦。另外含有 VBA 宏的文件需要保存为 .xlsm 格式有些公司或邮箱可能会拦截宏文件这也是一个实际使用中需要考虑的问题。5.2 编写一个简单的汇率获取函数下面是一个简化的 VBA 函数示例用来从一个返回 JSON 的 API 获取汇率。实际使用时你需要把请求地址替换成你自己申请的有效地址。Function GetExchangeRate(baseCurrency As String, quoteCurrency As String) As Double Dim http As Object Dim url As String Dim response As String Dim rateStart As Long Dim rateEnd As Long Dim rateStr As String 创建 HTTP 请求对象 Set http CreateObject(MSXML2.XMLHTTP) 拼接请求地址这里假设 API 接受这样的参数格式 url https://api.example.com/rate?from baseCurrency to quoteCurrency 发送请求 http.Open GET, url, False http.send 获取返回内容 response http.responseText 简单解析 JSON找到汇率值 实际使用时建议用更严谨的 JSON 解析方法 rateStart InStr(response, rate:) Len(rate:) rateEnd InStr(rateStart, response, ,) If rateEnd 0 Then rateEnd InStr(rateStart, response, }) rateStr Mid(response, rateStart, rateEnd - rateStart) 转换为数字返回 GetExchangeRate CDbl(Val(rateStr)) 释放对象 Set http Nothing End Function写好之后在单元格里输入GetExchangeRate(USD,CNY)就能得到美元兑人民币的汇率。这个示例非常基础实际使用中你需要处理各种异常情况比如网络超时、API 返回错误、JSON 格式变化等。而且上面用的是字符串查找来解析 JSON这种方式很脆弱一旦返回格式有细微变化就可能解析失败。更稳妥的做法是引入一个 JSON 解析库或者用正则表达式来处理。5.3 缓存机制避免频繁请求每次单元格重算都去发一次网络请求这显然不现实。一方面速度慢另一方面 API 可能有调用频率限制。所以必须加缓存。思路是这样的在 VBA 里用一个模块级的变量或者一个隐藏的工作表来存储上次获取的汇率和时间戳。每次调用函数时先检查缓存是否过期。如果没过期直接返回缓存值如果过期了再去发请求。缓存时间设多长取决于你的需求。如果只是做日报表缓存 1 小时甚至 4 小时都没问题。如果对时效性要求高可以设短一点比如 5 分钟。但要注意缓存时间越短API 调用越频繁越容易触发限制。我在实际项目里一般会把缓存时间设为 30 分钟对于大多数财务核算场景来说足够了。而且我会把缓存写在一个隐藏的工作表里这样即使关闭文件再打开缓存还在不会一打开就发一堆请求。5.4 VBA 方案的注意事项用 VBA 抓汇率有几个坑需要提前知道。第一网络请求可能会很慢。如果 API 响应时间长Excel 会卡住因为 VBA 的 HTTP 请求默认是同步的。解决办法是用异步请求但那样代码会复杂很多。一个折中的办法是限制请求频率并且尽量用缓存。第二错误处理必须做好。网络不通、API 返回错误、解析失败这些情况都要有对应的处理逻辑不能让函数直接报错。否则一个单元格出错可能影响整张表的计算。第三宏安全性问题。很多公司的 IT 策略会禁用宏或者要求宏必须签名。如果你的文件要发给别人用这一点必须提前确认。第四VBA 的 JSON 解析能力很弱。如果 API 返回的数据结构复杂用 VBA 解析会非常痛苦。这种情况下Power Query 反而是更好的选择因为它内置了 JSON 解析能力。6. 几种方案的对比与选型建议6.1 方案对比表对比维度内置数据类型Power QueryVBA 自定义函数上手难度极低中等较高灵活性低中等高币种支持有限取决于数据源取决于数据源刷新频率不可控可配置完全可控是否需要联网是是是兼容性版本要求高2016所有版本适合场景偶尔使用、简单报表定期更新、中等复杂度高度定制、自动化6.2 不同场景下的选型建议如果你只是偶尔需要查一下汇率填到表格里做个简单计算那内置的货币数据类型最省事。几分钟就能搞定不需要任何额外配置。如果你需要定期更新汇率比如每周或每天做报表而且希望过程自动化那 Power Query 是更好的选择。配置一次以后点刷新就行而且数据清洗的步骤也可以固化下来。如果你有比较复杂的自动化需求比如要根据汇率变动触发某些计算、要记录历史汇率、要和多个数据源交叉验证那 VBA 提供了最大的自由度。但代价是开发和维护成本更高。还有一种情况如果你完全不想碰代码又觉得内置功能不够用可以考虑用第三方插件。市面上有一些 Excel 插件专门做汇率获取功能比较完善但通常需要付费而且要注意数据来源的可靠性。6.3 我个人的实际选择说说我自己的做法。对于大多数项目我现在首选 Power Query。原因是它在灵活性和易用性之间取得了很好的平衡。配置好之后刷新逻辑很清晰而且可以把多个数据源的汇率合并到一张表里方便对比。只有在需要高度定制化的时候我才会用 VBA。比如之前帮一个朋友做的项目需要根据实时汇率自动判断是否触发换汇提醒这种逻辑用 VBA 写起来更直接。内置数据类型我一般只用来做快速验证比如想确认某个币种的汇率大概是多少直接输入货币对转换一下看一眼就完了不会把它作为正式方案。7. 实操中常见的问题与排查技巧7.1 数据类型转换失败怎么办这是最常见的问题。你输入了货币对点了“货币”按钮结果单元格显示一个问号或者错误提示。可能的原因有几个一是币种代码写错了。比如把人民币写成了“RMB”而不是“CNY”Excel 可能识别不了。标准的货币代码是 ISO 4217 三字母代码建议查一下确认。二是这个币种对不被支持。有些冷门币种可能确实没有数据。这时候可以试试换成“USD/XXX”的形式先看看这个币种是否被支持。三是网络问题。数据类型需要联网获取数据如果网络不通或者被防火墙拦截就会失败。检查一下网络连接或者换个网络环境试试。四是 Excel 版本问题。老版本可能不支持某些币种或者某些功能。确认一下你的 Excel 版本必要时升级。7.2 汇率刷新不及时的处理方法如果你发现汇率一直不更新可以尝试以下操作手动刷新右键点击单元格选择“刷新”。或者在“数据”选项卡里点击“全部刷新”。检查连接状态在“数据”选项卡里找到“查询和连接”看看有没有报错信息。如果有根据提示排查。重新转换有时候数据类型会“卡住”把单元格里的内容删掉重新输入货币对再转换一次往往能恢复正常。检查自动刷新设置如果你用的是 Power Query确认一下查询属性里的刷新频率是否设置正确以及“打开文件时刷新”是否勾选。7.3 发给别人后数据不更新的问题这个问题很典型。你做好了表格汇率也能自动更新但发给同事或客户之后对方打开发现汇率是旧的或者显示错误。原因通常是对方没有联网或者对方的 Excel 版本不支持数据类型或者对方的安全设置阻止了外部连接。解决办法如果表格只是用来查看而不是让对方也动态更新建议把汇率值“粘贴为数值”固化下来然后在表格里注明汇率来源和更新时间。这样对方看到的就是一个静态但明确的数据不会产生误解。如果确实需要对方也能动态更新那就要确保对方满足所有前提条件联网、版本支持、安全设置允许。这些条件缺一不可所以在实际工作中我一般不建议依赖对方的动态更新而是自己更新好之后再发出去。7.4 常见问题速查表问题现象可能原因解决方法货币数据类型转换失败币种代码错误改用标准 ISO 代码汇率长时间不更新自动刷新未开启手动刷新或检查刷新设置发给别人后显示旧数据对方无法联网或版本不支持粘贴为数值后发送Power Query 抓取失败网页结构变化重新配置查询或改用 APIVBA 函数返回错误API 地址失效或解析失败检查 API 状态和返回格式刷新时 Excel 卡顿同步请求阻塞减少请求频率或改用异步7.5 几个容易被忽略的细节第一个细节汇率的方向。USD/CNY 和 CNY/USD 是倒数关系但买入价和卖出价可能不是简单的倒数。如果你要做换汇计算一定要搞清楚用的是哪个方向的汇率。第二个细节时间戳。汇率是时刻变化的记录汇率的时候最好把时间也记下来。否则过几天回头看你不知道这个汇率是什么时候的对账的时候会很麻烦。第三个细节数据精度。有些 API 返回的汇率保留 4 位小数有些保留 6 位。如果你要做精确计算注意小数位是否够用。另外Excel 的浮点数计算本身有精度限制极端情况下可能会有微小误差财务场景下要留意。第四个细节API 密钥安全。如果你用 API 方案密钥不要直接写在 VBA 代码或者 Power Query 里尤其是文件要共享的时候。可以考虑把密钥存在一个单独的文件里或者用环境变量的方式管理。8. 进阶玩法把汇率和实际业务结合起来8.1 自动计算多币种订单的本地金额有了实时汇率之后最直接的应用就是自动换算。假设你有一张订单表A 列是订单金额B 列是币种C 列是汇率D 列是换算后的人民币金额。D 列的公式可以写成A2*C2其中 C2 是从汇率表里查过来的。如果币种比较多可以用 VLOOKUP 或者 XLOOKUP 从汇率表里自动匹配。比如汇率表里维护了所有币种的汇率订单表里只需要填币种代码公式自动去查对应的汇率。这样每次汇率更新之后所有订单的人民币金额都会自动重算不需要手动改任何东西。8.2 设置汇率预警提醒如果你对汇率波动比较敏感可以加一个预警机制。比如当美元兑人民币汇率超过某个阈值时单元格自动变红提醒你关注。实现方式是用条件格式。选中汇率单元格设置条件格式规则比如“单元格值大于 7.5 时填充红色”。这样汇率一超过阈值你一眼就能看到。更高级一点的做法是用 VBA 写一个事件触发的宏当汇率更新后自动检查是否超过阈值如果超过就弹出一个提示框。不过这种方案需要处理好触发时机避免频繁弹窗打扰。8.3 记录历史汇率做趋势分析实时汇率只能告诉你现在是多少但如果你想知道过去一段时间的走势就需要记录历史数据。一个简单的做法是每天固定时间把当天的汇率复制一份到历史表里按日期排列。积累一段时间之后就可以用 Excel 的图表功能画出趋势线或者用数据分析工具做更深入的统计。如果不想手动操作可以用 VBA 写一个定时任务每天自动把汇率追加到历史表里。这样时间一长你就有了一个自己的汇率数据库做预算、做预测的时候会很有参考价值。8.4 和其他数据源联动汇率数据可以和很多其他数据结合起来用。比如和销售数据结合分析汇率变动对利润的影响和库存数据结合判断什么时候换汇采购更划算和财务数据结合做多币种合并报表。这些应用的共同点是汇率只是一个输入参数真正的价值在于它和其他业务数据的联动。所以我在搭汇率表的时候通常会把它设计成一个独立的、可被其他表格引用的模块而不是把汇率逻辑散落在各个业务表里。这样维护起来方便也更容易复用。9. 一些实操心得和避坑建议先说一个我踩过的坑。早期我用 VBA 写汇率函数的时候没有加缓存结果每次 Excel 重算都会发一次网络请求。表格里如果有几百个单元格引用了这个函数一打开文件就是几百个请求同时发出去不仅慢还被 API 提供商限流了。后来加了缓存机制问题才解决。所以缓存这件事一定要从一开始就考虑进去。第二个心得不要过度追求“实时”。很多人一开始都想要秒级更新的汇率但实际上对于绝大多数业务场景分钟级甚至小时级的更新频率完全够用。过度追求实时性只会让方案变得复杂、脆弱、难以维护。先想清楚你的业务到底需要多快的更新频率再选方案。第三个建议做好数据验证。汇率数据偶尔会出现异常值比如 API 返回了 0 或者一个明显不合理的数字。如果不加验证直接用可能会导致计算结果严重错误。建议在汇率表里加一列校验比如检查汇率是否在合理范围内如果不在就标记出来。第四个提醒注意文件的体积。如果你用 Power Query 或者 VBA 抓了大量历史数据文件可能会变得很大打开和保存都会变慢。定期清理不需要的历史数据或者把历史数据存到单独的数据库里只在 Excel 里保留最近一段时间的。第五个经验文档化你的方案。不管用什么方法都在表格里留一个说明页写清楚汇率来源、更新频率、刷新方法、注意事项。这样即使过了一段时间你自己忘了或者要把表格交给别人维护都能快速上手。我见过太多人做了一个很复杂的自动化表格结果过了半年自己都忘了怎么维护最后只能推倒重来。关于币种代码再啰嗦一句。一定要用标准的 ISO 4217 代码不要用“RMB”“US$”这种非标准写法。标准代码是三个字母比如人民币是 CNY美元是 USD欧元是 EUR英镑是 GBP日元是 JPY。用标准代码的好处是兼容性好不管换什么数据源都能识别。最后说一个关于精度的问题。汇率计算涉及乘除浮点数运算可能会有微小误差。如果你的业务对精度要求很高比如涉及大额换汇建议在计算结果上做四舍五入保留合理的小数位。另外Excel 的显示值和实际值可能不一样显示两位小数不代表实际值就是两位小数做精确比较的时候要注意这一点。这篇文章里提到的几种方案没有绝对的好坏关键看你的具体需求和动手能力。内置数据类型最省事Power Query 最平衡VBA 最灵活。你可以先从最简单的开始试觉得不够用了再往上升级。我自己的路径就是从内置数据类型开始后来转到 Power Query再后来在特定项目里用 VBA。每一步都是在实际使用中发现了前一个方案的局限才去尝试新的。所以不用一上来就追求最完美的方案先用起来再慢慢优化。
