示例代码:
Public Sub LeftSub()
Dim SourceRange As Range, DestinationRange As Range
Dim i As Integer
Set SourceRange = Workbooks("xx.xlsx").Sheets("Sheet1").Range("B1:B10")
Set DestinationRange = Workbooks("xx.xlsx").Sheets("Sheet1").Range("A1:A10")
For i = 1 To SourceRange.Count
DestinationRange(i, 1).Value = Left(SourceRange(i, 1).Value, 2)
Next i
End Sub
答案 0 :(得分:2)
Left
可以解决(按此顺序):
Left
UserForm.Left
)第一场比赛是使用的比赛,无论其签名如何:
此功能的标识符隐藏内置的标识符。要访问内置Left
功能,您需要立即对其进行限定:
Debug.Print VBA.Strings.Left(...)
略有不相关,但请注意VBA.Strings.Left
返回隐式Variant
:
它的小型强力型小兄弟返回一个明确的String
:
因此避免了隐式类型转换的成本;每当Left$
参数永远不能为Left
时,首选String
至Null
- 两个函数非常相似,除此之外:
Debug.Print Left(Null, 1) ' outputs Null
Debug.Print Left$(Null, 1) ' raises runtime error 94 - Invalid use of Null
除非您正在处理access-vba,否则您可能永远不会在VBA中遇到Null
。
答案 1 :(得分:0)
这对我来说没有编译错误:
Option Explicit
Public Sub LeftSub()
Dim SourceRange As Range, DestinationRange As Range
Dim i As Integer
Set SourceRange = Range("B1:B10")
Set DestinationRange = Range("A1:A10")
For i = 1 To SourceRange.Count
DestinationRange(i, 1).Value = Left(SourceRange(i, 1).Value, 2)
Next i
End Sub