MICROSOFT

EP02. “Reverse Strings 反转字符串”

首页 Microsoft 工具 Excel · VBA · String Manipulation · EP02
约 4 分钟· #EP02#Excel#String Manipulation
🔒 登录后可标记已读
  • 写一个宏,把使用者输入的文字整个反过来(例如 "Car" 变成 "raC")
  • 核心思路是用 Mid 从字符串末尾往前逐字取出,再依序拼接
  • 前置知识:Len、Mid 函数的基本用法和 For 循环
  • 学完能自己写「逐字反向拼接」这类字符串重组逻辑

重点内容


适用版本

桌面版通用(Excel 365 / 2021 / 2019 等)。


完整代码

Dim text As String, reversedText As String, length As Integer, i As Integer

text = InputBox("Enter the text you want to reverse")
length = Len(text)

For i = 0 To length - 1
    reversedText = reversedText & Mid(text, (length - i), 1)
Next i

MsgBox reversedText

逻辑说明

  • InputBox 让使用者输入要反转的文字,Len 算出这段文字的长度
  • 循环从 0 跑到「长度 - 1」,每一轮用 Mid(text, (length - i), 1) 从字符串末尾往前一次取一个字符
  • 把每次取到的字符依序接在 reversedText 后面,就组成了反转后的字符串

逐步示例

以 "Car"(长度 3)为例:

  • i=0:取第 3 个字符 "r" → reversedText = "r"
  • i=1:取第 2 个字符 "a" → reversedText = "ra"
  • i=2:取第 1 个字符 "C" → reversedText = "raC"

学完你会

  • ✅ 用 Len 算出字符串长度,配合循环倒序取字符
  • ✅ 用 Mid(text, 位置, 1) 一次取一个字符
  • ✅ 理解「累加拼接字符串」这种循环写法(结果 = 结果 & 新字符

常见错误

  • Mid 里的位置公式写成 length + i 而不是 length - i,方向算反
  • 循环范围写错(比如 1 To length 而不是 0 To length - 1),导致漏字或多取一个字符
  • reversedText 变量没有在循环外先归零/清空,重复执行时会接到上一次的结果后面

Sources

Blog / Website:

  1. Reverse Strings