群友提问:能否让Excel根据运单号的前两位国家代码朗读国家名的MP3?
他应该是提前录制几个常用国家的MP3,想用VBA朗读。事实上Excel自身是有朗读功能的,可以读单元格内的值。
首先,通过录制宏得到功能的用法:Range("A2").Speak。与其他编程语言不同,学VBA的最佳老师是”录制宏“,而不是问度娘。
其次,设置个代码与国别的对照表。这里我扩展了一下:前三行中文发音,之后是英文。当然,也可在某个单元格设置一下朗读语言。
最后,看效果吧。
Dim lastrange As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo errProc
Dim Arr(), strCountry
icol = 2
strCountry = "不会"
Arr = Range("list")
If lastrange.Column <> 1 Then GoTo errProc
If lastrange.Row > 4 Then
icol = 3
strCountry = "Sorry"
End If
For i = 1 To UBound(Arr, 1)
If Arr(i, 1) = UCase(Left(lastrange.Value, 2)) Then strCountry = Arr(i, icol)
Next i
Range("f1").Value = strCountry
Range("f1").Speak
errProc:
Set lastrange = Target
End Sub