当前位置:编程学习 > VB >>

请教用VB自动根据EXCLE表建新表的代码

追问:您的答案比较接近我的要求,我还想问一下,如何让程序自动读取行数,并自动生成??比如原始表上客户下面如果是3,则程序自动生成三行,是4,就自动生成4行,谢谢
其他:'菜单:工程->引用Microsoft Excel 11.0
Private Sub Command1_Click()
    Dim XlApp As New Excel.Application
    Dim XLWorkBook As New Excel.Workbook
    Dim XLWorkSheet As New Excel.Worksheet
    Dim XLWorkSheet2 As New Excel.Worksheet
    Set XLWorkBook = XlApp.Workbooks.Open(App.Path & "\1.xls")
    Set XLWorkSheet = XLWorkBook.Sheets(1)
    Set XLWorkSheet2 = XLWorkBook.Sheets.Add
    XLWorkSheet2.Cells(1, 1) = XLWorkSheet.Cells(1, 1)
    XLWorkSheet2.Cells(1, 2) = XLWorkSheet.Cells(1, 2)
    x = 0
    For j = 2 To XLWorkSheet.UsedRange.Rows.Count
        For i = 1 To Val(XLWorkSheet.Cells(j, 1))
            XLWorkSheet2.Cells(x + i + 1, 2) = XLWorkSheet.Cells(j, 2)
        Next i
        x = x + Val(XLWorkSheet.Cells(j, 1))
    Next j
    XLWorkBook.Save
    XlApp.Quit
End Sub 我做了个从Sheet1生到Sheet2的,你可以参考,如果你的数据量大,你还需要对Sheet1里面的行数作个定义~
 
Sub Macro7() '我的例子没有新建BOOK,只是把内容从Sheet1生到了Sheet2里面
    Sheets("Sheet1").Select
    Range("A1:B1").Copy
    Sheets("Sheet2").Select
    Range("A1").Select
    ActiveSheet.Paste
    
N = Sheets("sheet1").Range("A2") '5
M = N + 1
Sheets("sheet1").Select
Range("B2").Copy
Sheets("sheet2").Select
Range("B2:B" & M).Select
ActiveSheet.Paste
 
Dim H As Long, NN As Long, R As Long
For RR = 3 To 4 'RR是表示sheet1里面的行数,如果你有很多行,你就要先定义你的行数
ActiveWorkbook.Sheets("Sheet2").Select
H = Sheets("Sheet2").Range("B1").End(xlDown).Row 'H1=6
HH = H + 1 'HH1=7
NN = ActiveWorkbook.Sheets("Sheet1").Range("A" & RR) 'N1=3
ActiveWorkbook.Sheets("Sheet1").Select
Range("B" & RR).Copy
ActiveWorkbook.Sheets("Sheet2").Select
Range(Cells(HH, 2), Cells(H + NN, 2)).Select
ActiveSheet.Paste
Next
  
  End Sub 

上一个:VB DirListBox的问题
下一个:vb DTPicker两天时间差

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,