用数组的方式运行cell.Value = WorksheetFunction.Clean(Trim(cell.Value))
时间: 2024-03-03 19:47:40 浏览: 216
这是一个将单元格中的字符串清洗并去除空格后,存储到数组中的方法。您需要先定义一个数组,然后使用 For Each 循环语句遍历单元格区域,将每个单元格的值清理并存储到数组中。以下是示例代码:
```vb
Dim myArray() As String
Dim cell As Range
Dim i As Long
'定义数组大小
ReDim myArray(1 To Selection.Cells.Count)
'遍历单元格并将值存储到数组中
i = 1
For Each cell In Selection.Cells
myArray(i) = WorksheetFunction.Clean(Trim(cell.Value))
i = i + 1
Next cell
```
请注意,此代码中的 `Selection` 表示选定的单元格区域,您可以根据需要修改为具体的单元格范围。另外,您可以根据需要修改数组的定义和大小,以适应实际情况。
相关问题
优化Sub 删除双引号() ' 判断是否有选区 If Not Selection Is Nothing Then ' 遍历选区中的每一个单元格 For Each cell In Selection.Cells ' 判断单元格是否为空 If Not IsEmpty(cell) Then ' 删除单元格中的空格 cell.Value = WorksheetFunction.Clean(Trim(cell.Value)) cell.NumberFormat = "@" End If Next cell End If End Sub
这段代码的作用是遍历所选区域中的每个单元格,并删除其中的双引号、空格,并将其格式设置为文本格式。这个代码看起来已经比较简洁,但是还有一些可以优化的地方,比如:
1. 可以考虑使用 Replace 函数来删除双引号,这样可以更加简洁地实现。
2. 可以使用 With 语句来避免重复引用 Selection.Cells。
下面是优化后的代码:
```
Sub 删除双引号()
If Not Selection Is Nothing Then
With Selection.Cells
.Replace Chr(34), "" ' 删除双引号
.Value = WorksheetFunction.Clean(.Value) ' 删除空格
.NumberFormat = "@" ' 设置文本格式
End With
End If
End Sub
```
Sub Statistics() Dim lastRow As Long Dim maxVal As Double Dim minVal As Double Dim avgVal As Double Dim countVal As Long Dim countRatio As Double lastRow = Cells(Rows.Count, "A").End(xlUp).Row '获取数据的最后一行 '计算最大值 maxVal = WorksheetFunction.Max(Range("A1:A" & lastRow)) Range("B1").Value = maxVal '计算最小值 minVal = WorksheetFunction.Min(Range("A1:A" & lastRow)) Range("B2").Value = minVal '计算平均值 avgVal = WorksheetFunction.Average(Range("A1:A" & lastRow)) Range("B3").Value = avgVal '计算区间计数 countVal = WorksheetFunction.CountIf(Range("A1:A" & lastRow), ">=60") Range("B4").Value = countVal '计算所占比例 countRatio = countVal / WorksheetFunction.CountA(Range("A1:A" & lastRow)) Range("B5").Value = countRatio End Sub,最后输出结果加中文
Sub 统计数据()
Dim lastRow As Long
Dim maxVal As Double
Dim minVal As Double
Dim avgVal As Double
Dim countVal As Long
Dim countRatio As Double
lastRow = Cells(Rows.Count, "A").End(xlUp).Row '获取数据的最后一行
'计算最大值
maxVal = WorksheetFunction.Max(Range("A1:A" & lastRow))
Range("B1").Value = "最大值:" & maxVal
'计算最小值
minVal = WorksheetFunction.Min(Range("A1:A" & lastRow))
Range("B2").Value = "最小值:" & minVal
'计算平均值
avgVal = WorksheetFunction.Average(Range("A1:A" & lastRow))
Range("B3").Value = "平均值:" & avgVal
'计算区间计数
countVal = WorksheetFunction.CountIf(Range("A1:A" & lastRow), ">=60")
Range("B4").Value = "大于等于60的数量:" & countVal
'计算所占比例
countRatio = countVal / WorksheetFunction.CountA(Range("A1:A" & lastRow))
Range("B5").Value = "大于等于60的数量占比:" & Format(countRatio, "0.00%")
End Sub
阅读全文