【问题标题】:using an automatic range to split cells使用自动范围分割单元格
【发布时间】:2019-03-14 16:17:34
【问题描述】:

所以我一直在尝试解决这个问题一段时间,我发现了关于同一个问题的几个主题。但我无法让它工作。

这是我的代码:

    Sub FindLast()
    Dim lCol As Long
    Dim lRox As Long
    Dim Copyrange As String


    lCol = ActiveSheet.UsedRange.Column - 1 + ActiveSheet.UsedRange.Columns.Count
    lRow = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
End Sub


Sub NameSplit()

Dim txt As String
Dim i As Integer
Dim FullName As Variant
Dim x As String, cell As Range
Dim charray(181, 3) As Integer

For Each cell In ActiveSheet.Range(Cells(1, 1).Address(), Cells(lRow, lCol).Address()).Select
     txt = cell.Value
     FullName = Split(txt, "-")

     For i = 0 To UBound(FullName)
         cell.Offset(0, i + 1).Value = FullName(i)
         charray(j, i) = FullName(i)
     Next i

Next cell
End Sub

在第一个 sub 中,我查找包含信息的最后一个单元格,并得到 lCol 和 lRow 的正确输出。

在第二个 sub 中,我尝试使用这两个值来拆分一系列单元格。 我为范围尝试了不同的语法,但我不断收到错误:

“应用程序定义或对象定义错误”

我无法调试,但我 90% 确定问题出在以下行:

 For Each cell In ActiveSheet.Range(Cells(1, 1).Address(), Cells(lRow, lCol).Address()).Select

任何帮助将不胜感激。

谢谢!

【问题讨论】:

    标签: split range cell


    【解决方案1】:

    首先,说到错误,这是由于 lRow 和 lCol 的值对子名称拆分不可见。将 lRow 和 lcol 定义为全局变量,以便这些值可见并且可以被所有模块访问。

    其次,最好了解您在 namesplit sub 中尝试执行的操作的详细信息,这至少可以帮助我进一步指导您。

    谢谢..

    【讨论】:

    • "ThisWorkbook.Worksheets("sheet1").Cells(lCol, lRow).Value" 您能否再次检查您的第二个代码 - 测试子代码?它必须是这样的 .cells(IRow, ICol).value 吗?您在行的位置传递列的值,反之亦然。请更正它,如果您仍然遇到一些错误,请告诉我们。
    猜你喜欢
    • 2022-10-13
    • 2016-07-04
    • 1970-01-01
    • 2012-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-07
    • 1970-01-01
    相关资源
    最近更新 更多