当前位置: 首页 > news >正文

通过 VBA 在 Excel 中自动提取拼音首字母

在excel里面把表格里的中文提取拼音大写缩写怎么弄
在Excel中,如果你想提取表格中的中文字符并转换为拼音大写缩写(即每个汉字的拼音首字母的大写形式),可以通过以下步骤来实现。这项工作可以分为两个主要部分:

提取拼音:Excel本身没有内置的拼音转换功能,因此需要借助第三方工具或VBA(宏)代码来实现。
提取拼音首字母:我们可以将提取的拼音进行处理,提取出每个字的拼音首字母并转换为大写。

方法 1: 使用VBA代码进行拼音转换(推荐方式)

步骤:
1.打开Excel VBA编辑器:

按 Alt + F11 打开VBA编辑器。

2.插入一个新的模块:

在VBA编辑器中,点击插入 -> 模块,这将创建一个新的代码模块。

3.复制并粘贴以下VBA代码: 这段代码将帮助你将中文字符转换为拼音,并提取每个拼音的首字母。

Function GetPinYin(str As String) As StringDim obj As ObjectDim i As IntegerDim result As StringSet obj = CreateObject("SAPI.SpVoice") ' 创建语音识别对象' 遍历字符串的每个字符For i = 1 To Len(str)result = result & GetFirstLetter(Mid(str, i, 1))Next iGetPinYin = result
End FunctionFunction GetFirstLetter(s As String) As String' 获取拼音的首字母,并转为大写Dim obj As ObjectSet obj = CreateObject("SAPI.SpVoice")On Error Resume Nextobj.Speak sGetFirstLetter = UCase(Left(obj.GetVoices().Item(0).GetDescription, 1)) ' 取拼音首字母
End Function

4.保存并关闭VBA编辑器:
完成后按 Ctrl + S 保存,并关闭VBA编辑器。

5.在工作表中使用这个函数: 假设你要转换A1单元格中的中文,可以在B1单元格中使用以下公式:

=GetPinYin(A1)

方法 2: 使用第三方插件(如百度拼音、搜狗拼音)

一些第三方拼音插件(如百度拼音、搜狗拼音等)可以与Excel集成,用来直接提取拼音,但这种方法通常需要你手动下载并安装插件,或者通过宏操作调用外部工具。
步骤:

  1. 安装拼音转换插件:例如可以安装“拼音助手”等第三方插件,直接提供拼音转换的功能。
  2. 转换拼音并提取首字母:通过插件将中文转换为拼音后,再通过Excel的文本函数(如LEFT)提取拼音的首字母并转换为大写。

方法 3: 使用在线工具(适合少量数据)

如果数据量不大,你也可以使用在线拼音转换工具,将中文文本粘贴到在线工具中,获取拼音首字母。然后手动将转换结果粘贴回Excel中。

方法 4: 手动提取拼音首字母(适用于小范围数据)

如果数据量非常小(例如只有几个单词),你也可以手动查找每个汉字的拼音首字母,并将其大写。例如:
• “北京” -> “B”
• “上海” -> “S”
• “广州” -> “G”
总结:

  1. VBA代码:通过编写VBA宏代码,可以自动实现拼音转换并提取拼音首字母。
  2. 第三方插件:可以使用插件(如百度拼音或搜狗拼音)来完成拼音转换。
  3. 在线工具:对于小数据量,可以使用在线拼音转换工具。
  4. 手动提取:如果数据量非常少,可以手动提取拼音首字母。

报错处理

#NAME? 错误通常表示 Excel 无法识别你输入的函数名称或引用。针对你遇到的问题,这里有几个可能的原因和解决办法:
1. VBA代码未正确保存或未启用

如果在执行VBA代码时遇到 #NAME? 错误,最常见的原因是函数没有正确保存或Excel无法识别该自定义函数。请按以下步骤检查和修复:

步骤 1:确保VBA代码正确保存

  1. 打开VBA编辑器:按 Alt + F11 打开VBA编辑器。
  2. 检查函数:确保你的函数代码已正确复制并粘贴到VBA模块中。
    o 确保 GetPinYin 和 GetFirstLetter 函数已经正确输入,且没有错误。
  3. 保存并关闭VBA编辑器:按 Ctrl + S 保存代码,然后关闭VBA编辑器(按 Alt + Q)。
    步骤 2:启用宏
    如果你的工作簿没有启用宏,也会出现此问题。确保你的Excel启用了宏:
  4. 点击 文件 -> 选项 -> 信任中心。
  5. 点击 信任中心设置,选择 启用所有宏(或选择 启用已签名的宏)。
    步骤 3:重新运行函数
    在Excel中重新输入你的函数,比如:
=GetPinYin(A1)

确保输入的函数名称没有错误,并且拼写与VBA中定义的完全一致。
2. Excel不支持SAPI.SpVoice
另外,原代码中的 SAPI.SpVoice 可能需要语音合成引擎支持,而这个可能不在所有版本的Excel中有效。我们可以使用另一种方法来避免这个问题,提取拼音首字母。
方法 2:改进VBA代码(提取拼音首字母)
为了避免依赖 SAPI.SpVoice,我将提供一个更简单的VBA代码,用来提取拼音首字母。
更新后的VBA代码:

  1. 打开VBA编辑器(Alt + F11),然后在新模块中粘贴以下代码:
Function getpychar(char)tmp = 65536 + Asc(char)If (tmp >= 45217 And tmp <= 45252) Thengetpychar = "A" ' 修改为大写ElseIf (tmp >= 45253 And tmp <= 45760) Thengetpychar = "B" ' 修改为大写ElseIf (tmp >= 45761 And tmp <= 46317) Thengetpychar = "C" ' 修改为大写ElseIf (tmp >= 46318 And tmp <= 46825) Thengetpychar = "D" ' 修改为大写ElseIf (tmp >= 46826 And tmp <= 47009) Thengetpychar = "E" ' 修改为大写ElseIf (tmp >= 47010 And tmp <= 47296) Thengetpychar = "F" ' 修改为大写ElseIf (tmp >= 47297 And tmp <= 47613) Thengetpychar = "G" ' 修改为大写ElseIf (tmp >= 47614 And tmp <= 48118) Thengetpychar = "H" ' 修改为大写ElseIf (tmp >= 48119 And tmp <= 49061) Thengetpychar = "J" ' 修改为大写ElseIf (tmp >= 49062 And tmp <= 49323) Thengetpychar = "K" ' 修改为大写ElseIf (tmp >= 49324 And tmp <= 49895) Thengetpychar = "L" ' 修改为大写ElseIf (tmp >= 49896 And tmp <= 50370) Thengetpychar = "M" ' 修改为大写ElseIf (tmp >= 50371 And tmp <= 50613) Thengetpychar = "N" ' 修改为大写ElseIf (tmp >= 50614 And tmp <= 50621) Thengetpychar = "O" ' 修改为大写ElseIf (tmp >= 50622 And tmp <= 50905) Thengetpychar = "P" ' 修改为大写ElseIf (tmp >= 50906 And tmp <= 51386) Thengetpychar = "Q" ' 修改为大写ElseIf (tmp >= 51387 And tmp <= 51445) Thengetpychar = "R" ' 修改为大写ElseIf (tmp >= 51446 And tmp <= 52217) Thengetpychar = "S" ' 修改为大写ElseIf (tmp >= 52218 And tmp <= 52697) Thengetpychar = "T" ' 修改为大写ElseIf (tmp >= 52698 And tmp <= 52979) Thengetpychar = "W" ' 修改为大写ElseIf (tmp >= 52980 And tmp <= 53640) Thengetpychar = "X" ' 修改为大写ElseIf (tmp >= 53679 And tmp <= 54480) Thengetpychar = "Y" ' 修改为大写ElseIf (tmp >= 54481 And tmp <= 62289) Thengetpychar = "Z" ' 修改为大写Else' 如果不是中文,则不处理getpychar = charEnd IfEnd Function' 逐个取ASC码
Function getpy(str)For i = 1 To Len(str)getpy = getpy & getpychar(Mid(str, i, 1))Next i
End Function

这个代码简化了拼音转换部分,并通过拼音字母映射的方式来返回拼音的首字母。
在这里插入图片描述

使用方法:

在Excel中,假设A1单元格有中文文本,你可以在B1单元格使用以下公式来提取拼音首字母:

=getpy(A1)

在这里插入图片描述

  1. 检查拼音库的支持
    如果你遇到#NAME?错误,并且希望进一步完善拼音提取功能,可能需要使用外部拼音库或API来获取更精确的拼音。Excel本身不提供直接的拼音转换功能。

如果在 EXCEL 2007 中的 “信任中心” 选项卡中没有找到 “信任中心设置”

可能是你进入了不正确的设置路径。请按以下步骤进行正确操作:

  1. 打开信任中心设置
  2. 打开 EXCEL 2007,点击左上角的 “OFFICE 按钮”(圆形的按钮)。
  3. 在弹出的菜单中,点击 “EXCEL 选项”(EXCEL OPTIONS)。
  4. 在 “EXCEL 选项” 窗口的左侧,选择 “信任中心”(TRUST CENTER)。
  5. 在 信任中心 页面,点击右侧的 “信任中心设置”(TRUST CENTER SETTINGS)。
  6. 启用宏的设置
    进入 “信任中心设置” 后,找到 “宏设置”(MACRO SETTINGS)选项,并根据需要进行设置。你会看到以下几个选项:
    禁用所有宏,无通知:禁止所有宏,不会显示任何提示。
    禁用所有宏,除了数字签名的宏:只允许受信任的宏运行。
    启用所有宏:允许所有宏运行(不推荐,因为这可能存在安全风险)。
    启用所有宏,带通知:允许宏运行,但每次打开含宏的文件时都会提示用户是否启用宏(推荐)。
    选择 “启用所有宏,带通知” 选项,这样每次打开包含宏的文件时,EXCEL 会提示你是否启用宏。
    勾选 “信任对VBA工程对象模型的访问” 选项。
  7. 保存并退出
    设置完成后,点击 “确定” 保存设置,关闭对话框。
  8. 重新打开文件
    完成上述步骤后,你可以重新打开你的 EXCEL 文件。如果文件包含宏,EXCEL 会提示你是否启用宏,选择 “启用宏”。

相关文章:

通过 VBA 在 Excel 中自动提取拼音首字母

在excel里面把表格里的中文提取拼音大写缩写怎么弄 在Excel中&#xff0c;如果你想提取表格中的中文字符并转换为拼音大写缩写&#xff08;即每个汉字的拼音首字母的大写形式&#xff09;&#xff0c;可以通过以下步骤来实现。这项工作可以分为两个主要部分&#xff1a; 提取拼…...

华硕笔记本怎么一键恢复出厂系统_华硕笔记本一键恢复出厂系统教程

华硕笔记本怎么一键恢复出厂系统&#xff1f; 华硕一键恢复出厂系统是一个安全、高效、方便的恢复方式&#xff0c;让您轻松还原出厂设置&#xff0c;以获得更好的系统性能。如果您的华硕电脑遇到问题&#xff0c;可以使用华硕一键恢复出厂系统功能。下面小编就教大家华硕笔记本…...

Ubuntu 如何安装Snipaste截图软件

在Ubuntu上安装Snipaste-2.10.5-x86_64.AppImage的步骤如下&#xff1a; 1. 下载Snipaste AppImage 首先&#xff0c;从Snipaste的官方网站或GitHub Releases页面下载Snipaste-2.10.5-x86_64.AppImage文件。 2. 赋予执行权限 下载完成后&#xff0c;打开终端并导航到文件所在…...

【离散数学上机】T235,T236

T235题目&#xff1a;输入集合A和B&#xff0c;输出A到B上的所有单射函数。 问题描述 给定非空数字集合A和B&#xff0c;求出集合A到集合B上的所有单射函数。 输入格式 第一行输入m和n&#xff08;空格间隔&#xff09;&#xff0c;分别为集合A和集合B中的元素个数&#xff1b;…...

【Android开发】安卓手机APP使用机器学习进行QR二维码识别(完整工程资料源码)

前言:本项目是一个 Android 平台的二维码扫描应用,具备二维码扫描和信息展示功能。借助 AndroidX CameraX 库实现相机的预览、图像捕获与分析,使用 Google ML Kit 进行二维码识别。为方便大家了解项目全貌,以下将介绍项目核心代码文件 MainActivity.java 和 AndroidManifes…...

【油猴脚本/Tampermonkey】DeepSeek 服务器繁忙无限重试(20250214优化)

目录 一、 引言 二、 逻辑 三、 源代码 四、 添加新脚本 五、 使用 六、 BUG 七、 优化日志 1.获取最后消息内容报错 2.对话框切换无法正常使用 一、 引言 deepseek演都不演了&#xff0c;每次第一次提问就正常&#xff0c;后面就开始繁忙了&#xff0c;有一点阴招全…...

为deepseek搭建本地页面

搭建页面的框架多种多样,例如python中的flask、django等,再如java中的spring框架等等。你使用什么语言、什么框架都无所谓,重要的是设计思路。这里UP以node.js中的express框架为例来为deepseek搭建一个本地页面。 一、ollama的下载、安装和加载 deepseek本地部署-CSDN博客…...

详解df -h命令

df -h 是 Linux 中用于查看文件系统磁盘空间使用情况的命令。以下是详细说明&#xff1a; 命令格式 df -h 选项说明 -h&#xff1a;以易读格式&#xff08;如 KB、MB、GB&#xff09;显示磁盘空间。 输出字段 Filesystem&#xff1a;文件系统的设备名或挂载点。 Size&…...

虚拟环境测试部署应用

一、作用 虚拟环境(env)在计算机领域,特别是在软件开发和测试中扮演着重要角色。它主要用于创建一个隔离的环境,使得开发者可以在不影响系统其余部分的情况下安装、配置和运行软件项目。以下是虚拟环境的一些主要作用: 1、依赖管理 不同的项目可能需要不同版本的库或框…...

CentOS本机配置为时间源

CentOS本机配置为时间源 安装chrony&#xff0c;默认已安装修改配置文件 /etc/chrony.conf客户端配置 安装chrony&#xff0c;默认已安装 yum -y install chrony修改配置文件 /etc/chrony.conf # cat /etc/chrony.conf | grep -Ev "^$|#" server ceph00 iburst dri…...

蓝桥杯备赛 Day14 素数环

信息学奥赛一本通&#xff08;C版&#xff09;在线评测系统 【题目描述】 输入正整数nn&#xff0c;把整数11,22,…,nn 组成一个环&#xff0c;使得相邻两个整数之和均为素数。 【输入】 输入正整数nn。 【输出】 输出任意一个满足条件的环。 【输入样例】 6 【输出样例】 …...

小程序canvas2d实现横版全屏和竖版逐字的签名组件(字帖式米字格签名组件)

文章标题 01 功能说明02 效果预览2.1 横版2.2 竖版 03 使用方式04 横向签名组件源码4.1 html 代码4.2 业务 Js4.3 样式 Css 05 竖向签名组件源码5.1 布局 Html5.2 业务 Js5.3 样式 Css 01 功能说明 技术栈&#xff1a;uniapp、vue、canvas 2d 需求&#xff1a; 实现横版的全…...

haproxy详解笔记

一、概述 HAProxy&#xff08;High Availability Proxy&#xff09;是一款开源的高性能 TCP/HTTP 负载均衡器和代理服务器&#xff0c;用于将大量并发连接分发到多个服务器上&#xff0c;从而提高系统的可用性和负载能力。它支持多种负载均衡算法&#xff0c;能够根据服务器的…...

SpringCloud框架下的注册中心比较:Eureka与Consul的实战解析

摘要 在探讨SpringCloud框架中的两种注册中心之前&#xff0c;有必要回顾单体架构与分布式架构的特点。单体架构将所有业务功能集成在一个项目中&#xff0c;优点是架构简单、部署成本低&#xff0c;但耦合度高。分布式架构则根据业务功能对系统进行拆分&#xff0c;每个模块作…...

前端调用串口通信

项目录结构 node项目 1&#xff09; 安装serialport npm install serialport 2&#xff09;编写index.js 1 const SerialPort require(serialport); 2 var senddata [0x02];//串口索要发送的数据源 3 var port new SerialPort(COM3);//连接串口COM3 4 port.on(open, fun…...

23、深度学习-自学之路-激活函数relu、tanh、sigmoid、softmax函数的正向传播和反向梯度。

在使用这个非线性激活函数的时候&#xff0c;其实我们重点还是学习的是他们的正向怎么传播&#xff0c;以及反向怎么传递的。 如下图所示&#xff1a; 第一&#xff1a;relu函数的正向传播函数是&#xff1a;当输入值&#xff08;隐藏层&#xff09;值大于了&#xff0c;就输出…...

《8天入门Trustzone/TEE/安全架构》

CSDN学院课程连接&#xff1a;https://edu.csdn.net/course/detail/39573...

计算机视觉中图像的基础认知

一、图像/视频的基本属性 在计算机视觉中&#xff0c;图像和视频的本质是多维数值矩阵。图像或视频数据的一些基本属性。 宽度&#xff08;W&#xff09; 和 高度&#xff08;H&#xff09; 定义了图像的像素分辨率&#xff0c;单位通常是像素。例如&#xff0c;一张 1920x10…...

MYSQL的管理备份

一、系统数据库 mysql数据库安装完成后,自带了四个数据库,具体作用如下: mysql:存储MySQL服务器正常运行所需的各种信息(时区、主从、用户、权限等); information_schema:提供了访问数据库元数据的各种表和视图,包含数据库、表、字段类型及访问权限等; performanc…...

数据仓库与数据挖掘记录 三

数据仓库的数据存储和处理 数据的ETL过程 数据 ETL 是用来实现异构数据源的数据集成,即完成数据的抓取/抽取、清洗、转换 .加载与索引等数据调和工作,如图 2. 2 所示。 1&#xff09;数据提取&#xff08;Extract&#xff09; 从多个数据源中获取原始数据&#xff08;如数据…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...