在Excel VBA中的片假名到平假名

时间:2016-06-21 19:12:24

标签: excel vba range selection string-conversion

我有一个excel文件,我必须将片假名字符改为平假名。我已经使用StrConv + vbHiragana一段时间了,但是,由于我在1000行(两次)的范围内使用它,因此它非常慢。在搜索之后,我发现了以下代码,这看起来像是一种不同的方法,看起来非常快。我唯一的问题是,只有当我选择指定的行和列(例如来自A1:A10),然后如果我运行它,它才能完美地完成工作。我需要调整它,以便它自动在一个范围内完成并在不同的工作表上显示结果。 (来自A1:A1000 + D1:D1000) 像这样:

sample

以下是我找到的代码:

Sub Comm()
Dim i, gyos, retus, rwsu As Integer
Dim KATA, HIRA As String


gyos = ActiveCell.Row
retus = ActiveCell.Column
rwsu = Selection.Rows.Count - 1


For n = gyos To gyos + rwsu
KATA = Cells(n, retus)
HIRA = StrConv(KATA, 32)
Cells(n, retus) = HIRA
Next n


End Sub

任何人都知道解决这个问题吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

与findwindow建议的一样,只需设置自己的范围并在for循环中使用它:

Dim row as Integer

For row = 1 to 1000
    Worksheets("Sheet2").Range("B" & row).Value = StrConv(Worksheets("Sheet1").Range("B" & row).Value, 32)
    Worksheets("Sheet2").Range("D" & row).Value = StrConv(Worksheets("Sheet1").Range("D" & row).Value, 32)
Next row

答案 1 :(得分:0)

试试这个,更简单一点..

Sub Comm()
    Dim iRng As Range, uRng As Range

    Set uRng = Union(Range("A1:A1000"), Range("D1:D1000"))

    For Each iRng In uRng

        iRng = StrConv(iRng, vbHiragana)

    Next iRng

End Sub

干杯〜