zoukankan      html  css  js  c++  java
  • 整理BOM时写的关于拆分单元格的VB代码

    Public Function AddRows(pos As Integer, amount As Integer)
        Dim rpos As Integer
        rpos = pos + 1
        For i = 1 To amount
            ActiveSheet.Rows(rpos).Insert
        Next i
    End Function
    Public Function PasteRows(startPos As Integer, amount As Integer)
        Dim rStartPos As Integer
        Dim rEndPos As Integer
        Dim startPosStr As String
        Dim endPosStr As String
        
        startPosStr = str(startPos)
        rStartPos = startPos + 1
        rEndPos = startPos + amount
        
        Rows(startPos & ":" & startPos).Select
        Selection.Copy
        Rows(startPos + 1 & ":" & rEndPos).Select
        ActiveSheet.Paste
    End Function
    Public Function ElementNum(str As String) As Integer
        Dim a() As String
        a = Split(str, ",")
        ElementNum = UBound(a) - LBound(a)
    End Function
    Public Function PasteCells(str As String, pos As Integer)
        Dim a() As String
        Dim num As Integer
        Dim i As Integer
        Dim j As Integer
        
        j = 0
        a = Split(str, ",")
        num = UBound(a) - LBound(a) + pos
        For i = pos To num
            ActiveSheet.Cells(i, 2) = a(j)
            j = j + 1
        Next i
    End Function
    
    Sub BomSplit()
        Dim rowNum As Integer
        Dim i As Integer
        Dim j As Integer
        
        j = 1
        For i = 1 To 3                ’按照图1中三行来写的参数;
            rowNum = ElementNum(ActiveSheet.Cells(j, 2))
            If rowNum > 0 Then
                Call AddRows(j, rowNum)
                Call PasteRows(j, rowNum)
                Call PasteCells(ActiveSheet.Cells(j, 2), j)
            End If
            j = j + rowNum + 1
        Next i
    End Sub

     以上代码实现的功能是将下图1自动转换成图2

    图1:

    图2:

    参考文献:

    [1]. Excel如何实现两个工作表数据的对比

  • 相关阅读:
    我的友情链接
    我的友情链接
    我的友情链接
    我的友情链接
    我的友情链接
    我的友情链接
    我的友情链接
    以太坊:通信协议对象 shh
    以太坊:Truffle 概述
    以太坊:快速入门 Truffle
  • 原文地址:https://www.cnblogs.com/cnpirate/p/4849582.html
Copyright © 2011-2022 走看看