vba - 为什么 Range.Value = Left(....) 不起作用?
问题描述
我对 VBA 很陌生,所以这可能有一个非常简单的答案!
我正在尝试使用 Left 函数来生成一列中单元格的第一个数字的字符串,但是由于我不明白的原因,当我使用 Range.Value = Left(...) 时,它没有放我从 Left(...) 获得的值进入单元格。
代码完成运行后,我留下了一个空白列 A。
任何人都可以解释为什么会发生这种情况并建议如何解决它。
我写的代码是:
Dim r As Integer
Dim var As Variant
r = Range("B1").CurrentRegion.Rows.Count
For var = 2 To r
Range("A" & var).Value = Left(Cells(var, 1).Text, 1)
Next var
非常感谢。
解决方案
这将是另一种方法,扫描 B 中的单元格并将每个单元格的第一个字母写入其左侧的单元格中:
Dim c As Range
For Each c In Range("B1", "B" & Cells(Rows.Count, "B").End(xlUp).Row).Cells
c.Offset(0, -1).Value = Left(c.Text, 1)
Next
注意:严格来说,限定范围是一个好习惯:
Dim c As Range
With Worksheets("YOUR_SHEET_NAME_HERE")
For Each c In .Range("B1", "B" & .Cells(.Rows.Count, "B").End(xlUp).Row).Cells
c.Offset(0, -1).Value = Left(c.Text, 1)
Next
End With
推荐阅读
- android - 如何在多行edittext中禁用滚动
- python - 如何在python中检测蓝牙设备何时连接
- tensorflow - Tensorflow:经过一系列卷积和反卷积后得到相同的张量
- python - 将 Python 请求库转换为 Nodejs
- r - R嵌套for循环结构,用于两个变量的所有组合
- swift - Swift 5. 'withUnsafeBytes' 已弃用:使用 `withUnsafeBytes
(...) 反而 - java - GeoFire Firebase 查询无法在 ArrayList 中存储用户 ID
- scala - Upickle:读取可能是 String 或 Int 的属性作为 String
- java - 将 Java 代码转换为 Kotlin 代码时出错
- ros - 将 C++ 包中的 ROS .msg 导入 python