Excel VBA一个数组上的两个函数

我需要删除开始处的空格,string结尾并使string正确的大小写。

我发现了两个脚本:

Sub Function01() Dim arrData() As Variant Dim arrReturnData() As Variant Dim rng As Excel.Range Dim lRows As Long Dim lCols As Long Dim i As Long, j As Long Range("R1", Range("R1").End(xlDown)).Select lRows = Selection.Rows.Count lCols = Selection.Columns.Count ReDim arrData(1 To lRows, 1 To lCols) ReDim arrReturnData(1 To lRows, 1 To lCols) Set rng = Selection arrData = rng.Value For j = 1 To lCols For i = 1 To lRows arrReturnData(i, j) = Trim(arrData(i, j)) ///ADDING HERE(read below) Next i Next j rng.Value = arrReturnData Set rng = Nothing End Sub 

这是删除string和另一个脚本上的空格:

 Sub ChangeCase() Dim Rng As Range On Error Resume Next Err.Clear Application.EnableEvents = False For Each Rng In Selection.SpecialCells(xlCellTypeConstants, _ xlTextValues).Cells If Err.Number = 0 Then Rng.Value = StrConv(Rng.Text, vbProperCase) End If Next Rng Application.EnableEvents = True End Sub 

这是正确的情况下,string。 这两个脚本正在使用范围来selectR列中的所有非空单元格。 我需要在第一个函数中创build第二个脚本。

在第一个脚本中添加此代码(/// ADDING HERE):arrReturnData(i,j)= StrConv(arrData(i,j),vbProperCase)

使我的输出正确的情况下,但与空间。 你们可以提出一下如何做两个脚本函数吗?

谢谢!

这将完成无循环的整体:

 Sub Function01() Dim rng As Range Set rng = Selection rng.Value = rng.Parent.Evaluate("INDEX(PROPER(TRIM(" & rng.Address & ")),)") End Sub 

之前:

在这里输入图像说明

后:

在这里输入图像说明