如何在 Excel/Office 365 中将文本转换为大写(或小写)?
这一页建议使用“更改大小写”按钮,但我的 Excel 副本中没有这样的按钮,并且在自定义功能区时它甚至没有出现在可用按钮列表中。
编辑:更改大小写按钮似乎在 Word 中,而不是 Excel 中。但是,问题仍然存在:Excel 中是否有类似的按钮/选项?
答案1
一种方法是通过 VBA。您甚至不必编写宏,只需选择要转换的所有单元格,按 Alt-F11,然后按 Control-G,然后键入:
For Each myCell In Selection.Cells : myCell.Value = UCase(myCell.Value) : Next
这会将所有选定的单元格转换为大写(请注意,如果单元格有公式,它会将其更改为当前值!)
答案2
这种方法不太适用于大批量细胞,但到位@spikey_richie 的版本回答是:
- 从现有文本开始:
- 在公式栏中编辑表达式,用
=upper("
和包围现有文本")
,但不按enter:
- 现在F9按评价表达式,它将用计算值替换单元格中的公式:
- 和然后按enter接受该值:
请注意,如果字符串中有双引号之类的特殊字符,您也需要对其进行转义,因此这种方法的实用性有限,但对于快速修复来说很有用。
该F9键对于其他表达方式也很有用 - 我经常使用=TODAY()
+F9在单元格中输入今天的实际日期,这样我就不必查看日历了:-)。
答案3
答案4
您可以使用“自动化”选项卡来创建并运行办公室脚本如果你满足要求。这些脚本就像宏,但它们是用 TypeScript 编写的,并保存到您的 Office 帐户,以便您可以在其他工作簿中重复使用它们。
下面是一个脚本示例,该脚本会逐个单元格地更改选定单元格的大小写。
function main(workbook: ExcelScript.Workbook) {
const selectedRange = selectedSheet.getSelectedRange();
const rowCount = selectedRange.getRowCount();
const colCount = selectedRange.getColumnCount();
for (let c = 0; c < colCount; c++) {
for (let r = 0; r < rowCount; r++) {
const cell = selectedRange.getCell(r, c);
const text = cell.getText();
if (text.length === 0) {
continue;
}
const isLower = text[0] === text[0].toLowerCase();
if (isLower) {
cell.setValue(text.toUpperCase());
} else {
cell.setValue(text.toLowerCase());
}
}
}
}