Vba 将范围偏移量存储为用户定义的可变文本到列

Vba 将范围偏移量存储为用户定义的可变文本到列,vba,excel,Vba,Excel,我有一个子集,作为它的一部分,我正在将数据从文本转换为列,我想指定转换的位置。其思想是,用户选择要开始的单元格,子节点完成其过程,并将数据从文本转换为以激活的单元格列开始的列。理想情况下,我希望将偏移位置保存为一个变量,以便我可以在sub的其余部分进一步操作它。我的数据以“u”分隔 currentCell = ActiveCell.Address Dim newLocation As Range newLocation = ActiveCell.Offset(0,5) Range(Selecti

我有一个子集,作为它的一部分,我正在将数据从文本转换为列,我想指定转换的位置。其思想是,用户选择要开始的单元格,子节点完成其过程,并将数据从文本转换为以激活的单元格列开始的列。理想情况下,我希望将偏移位置保存为一个变量,以便我可以在sub的其余部分进一步操作它。我的数据以“u”分隔

currentCell = ActiveCell.Address
Dim newLocation As Range
newLocation = ActiveCell.Offset(0,5)
Range(Selection, Selection.End(xlDown)).Select
Selection.TextToColumns _
    Destination:=Range(newLocation), _
    DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, _
    ConsecutiveDelimiter:=False, _
    Tab:=False, _
    Semicolon:=False, _
    Comma:=False, _
    Space:=False, _
    Other:=True, _
    OtherChar:="_"

您需要使用设置并修复目的地行:

Sub dural()
    currentCell = ActiveCell.Address
    Dim newLocation As Range
    Set newLocation = ActiveCell.Offset(0, 5)
    Range(Selection, Selection.End(xlDown)).Select
    Selection.TextToColumns _
        Destination:=newLocation, _
        DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, _
        Tab:=False, _
        Semicolon:=False, _
        Comma:=False, _
        Space:=False, _
        Other:=True, _
        OtherChar:="_"
End Sub

谢谢这很有效。现在我明白了为什么当我有Destination:=Range(newLocation)时,我被抛出一个运行时错误方法“Range”,对象“u Global”失败了