Excel VBA将数据从一个单元格转换为行(类型不匹配错误)

紫红色

我是第一次创建宏VBA excel。我有包含4列的表,如下所示:

Determining the Geometry of Boundaries of Objects from Medial Data |    James N. Damon   |    907547    |   396035:835253:907794

我想将它们分开,以便输出为:

Determining the Geometry of Boundaries of Objects from Medial Data |    James N. Damon   |    907547    |   396035

Determining the Geometry of Boundaries of Objects from Medial Data |    James N. Damon   |    907547    |   835253

Determining the Geometry of Boundaries of Objects from Medial Data |    James N. Damon   |    907547    |   907794

我使用的宏如下(来自stackoverflow中的引用),但是我在行上遇到类型不匹配错误

[e1].Resize(lngCnt, 4).Value2 = Application.Transpose(Y)

任何帮助将非常感激。这是我第一次处理VBA,对于类型不匹配,这对我来说似乎是一片空白。

Sub SliceNDice()
    Dim objRegex As Object
    Dim X
    Dim Y
    Dim lngRow As Long
    Dim lngCnt As Long
    Dim tempArr() As String
    Dim strArr
    Set objRegex = CreateObject("vbscript.regexp")
    objRegex.Pattern = "^\s+(.+?)$"
     'Define the range to be analysed
    X = Range([a1], Cells(Rows.Count, "d").End(xlUp)).Value2
    ReDim Y(1 To 4, 1 To 1000)
    For lngRow = 1 To UBound(X, 1)
         'Split each string by ","
        tempArr = Split(X(lngRow, 4), ",")
        For Each strArr In tempArr
            lngCnt = lngCnt + 1
             'Add another 1000 records to resorted array every 1000 records
            If lngCnt Mod 1000 = 0 Then ReDim Preserve Y(1 To 4, 1 To lngCnt + 1000)
            Y(1, lngCnt) = X(lngRow, 1)
            Y(2, lngCnt) = X(lngRow, 2)
            Y(3, lngCnt) = X(lngRow, 3)
            Y(4, lngCnt) = objRegex.Replace(strArr, "$1")
        Next
    Next lngRow
     'Dump the re-ordered range to columns E:H
    [e1].Resize(lngCnt, 4).Value2 = Application.Transpose(Y)
    ActiveSheet.Range("E:H").RemoveDuplicates Columns:=Array(1, 2, 3, 4), _
        Header:=xlNo
End Sub

我的文件包含成百上千的行。

悉达思·劳特(Siddharth Rout)

这是一种方法。不是最快的,但能完成任务。我已经注释了代码,因此您在理解它时不会遇到问题。

Sub Sample()
    Dim ws As Worksheet
    Dim lRow As Long, i As Long, j As Long
    Dim tmpAr As Variant

    '~~> Change this to the relevant sheet
    Set ws = ThisWorkbook.Sheets("Sheet1")

    With ws
        '~~> Get last row in Col D. That is where we have to check for ":"
        lRow = .Range("D" & .Rows.Count).End(xlUp).Row

        '~~> Reverse loop the rows
        For i = lRow To 1 Step -1
            '~~> Check if cell in Col D has ":"
            If InStr(1, .Range("D" & i).Value, ":") Then
                '~~> Split on ":" and store in an array
                tmpAr = Split(.Range("D" & i).Value, ":")

                '~~> Loop through the array
                For j = LBound(tmpAr) To UBound(tmpAr)
                    '~~> Insert a row in the next row
                    .Rows(i + 1).Insert Shift:=xlDown, _
                    CopyOrigin:=xlFormatFromLeftOrAbove
                    '~~> Copy data from above as cell in Col D is different
                    .Rows(i).Copy .Rows(i + 1)
                    '~~> Add the new value to cell in Col D
                    .Cells(i + 1, 4).Value = tmpAr(j)
                Next j
                '~~> Delete the row
                .Rows(i).Delete
            End If
        Next i
    End With
End Sub

截屏

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Excel VBA将数据从一个单元格转换为行(类型不匹配错误)

来自分类Dev

Excel-VBA 宏将单元格内容转换为另一个单元格的注释

来自分类Dev

使用excel VBA将所有更改数据从一个单元格捕获到另一个单元格

来自分类Dev

Excel,将数据从一个单元格传输到另一个单元格

来自分类Dev

Excel / VBA如何在上次使用的单元格之后将数据从一个工作表移动到另一个工作表?

来自分类Dev

Excel 2013:VBA将公式从一个单元格复制到下一个单元格

来自分类Dev

vba excel:如何将字符从一个单元格复制到另一个单元格

来自分类Dev

<Excel-VBA> 将值从单元格复制到文本框时出现“类型不匹配”错误

来自分类Dev

Excel VBA代码将数据从4个特定的单元格移动到下一个可用行中的另一个工作表

来自分类Dev

Excel VBA。将单元格列表转换为范围

来自分类Dev

从一个Excel单元格到新XML文件的XML数据

来自分类Dev

Excel:在表格中查找匹配单元格并返回行中第一个单元格的值

来自分类Dev

Excel VBA选择每隔一个单元格

来自分类Dev

Excel VBA代码从一个单元格剪切并粘贴到另一个单元格

来自分类Dev

VBA-Excel根据单元格值将数据导出到另一个工作簿

来自分类Dev

将数据复制到下一个可用的空白单元格 excel vba

来自分类Dev

如何在Excel中复制行并将值从一个单元格复制到另一个单元格?

来自分类Dev

Excel VBA选择一个单元格遇到错误1004 Select Range类失败

来自分类Dev

Excel VBA如何使用超链接将信息从一个单元格复制到工作表之间的另一个单元格

来自分类Dev

VBA,Excel ODBC驱动程序-对单元格中的参数使用sql查询时,类型不匹配错误

来自分类Dev

将数据添加到excel中的新单元格而不删除前一个单元格

来自分类Dev

如果第一个单元格不是数字vba Excel,则删除行

来自分类Dev

从传递的列/行/范围VBA Excel中获取一个单元格

来自分类Dev

Excel VBA查找行中第一个空白单元格的列名

来自分类Dev

从传递的列/行/范围VBA Excel中获取一个单元格

来自分类Dev

Excel VBA宏将多个excel中使用的单元格复制到一个excel中

来自分类Dev

Excel VBA - 通过另一个单元格更改单元格值?

来自分类Dev

附加到单元格时Excel VBA中的类型不匹配

来自分类Dev

Excel VBA代码根据另一个单元格值清除一个单元格中的数据

Related 相关文章

  1. 1

    Excel VBA将数据从一个单元格转换为行(类型不匹配错误)

  2. 2

    Excel-VBA 宏将单元格内容转换为另一个单元格的注释

  3. 3

    使用excel VBA将所有更改数据从一个单元格捕获到另一个单元格

  4. 4

    Excel,将数据从一个单元格传输到另一个单元格

  5. 5

    Excel / VBA如何在上次使用的单元格之后将数据从一个工作表移动到另一个工作表?

  6. 6

    Excel 2013:VBA将公式从一个单元格复制到下一个单元格

  7. 7

    vba excel:如何将字符从一个单元格复制到另一个单元格

  8. 8

    <Excel-VBA> 将值从单元格复制到文本框时出现“类型不匹配”错误

  9. 9

    Excel VBA代码将数据从4个特定的单元格移动到下一个可用行中的另一个工作表

  10. 10

    Excel VBA。将单元格列表转换为范围

  11. 11

    从一个Excel单元格到新XML文件的XML数据

  12. 12

    Excel:在表格中查找匹配单元格并返回行中第一个单元格的值

  13. 13

    Excel VBA选择每隔一个单元格

  14. 14

    Excel VBA代码从一个单元格剪切并粘贴到另一个单元格

  15. 15

    VBA-Excel根据单元格值将数据导出到另一个工作簿

  16. 16

    将数据复制到下一个可用的空白单元格 excel vba

  17. 17

    如何在Excel中复制行并将值从一个单元格复制到另一个单元格?

  18. 18

    Excel VBA选择一个单元格遇到错误1004 Select Range类失败

  19. 19

    Excel VBA如何使用超链接将信息从一个单元格复制到工作表之间的另一个单元格

  20. 20

    VBA,Excel ODBC驱动程序-对单元格中的参数使用sql查询时,类型不匹配错误

  21. 21

    将数据添加到excel中的新单元格而不删除前一个单元格

  22. 22

    如果第一个单元格不是数字vba Excel,则删除行

  23. 23

    从传递的列/行/范围VBA Excel中获取一个单元格

  24. 24

    Excel VBA查找行中第一个空白单元格的列名

  25. 25

    从传递的列/行/范围VBA Excel中获取一个单元格

  26. 26

    Excel VBA宏将多个excel中使用的单元格复制到一个excel中

  27. 27

    Excel VBA - 通过另一个单元格更改单元格值?

  28. 28

    附加到单元格时Excel VBA中的类型不匹配

  29. 29

    Excel VBA代码根据另一个单元格值清除一个单元格中的数据

热门标签

归档