VBA 读取一个Excel文件中的所有worksheet第一行到另一个Excel文件中

'**************************************************************************************
'获取一个Excel文件中的所有worksheet中的第一行的数据到指定文件,指定文件第一行为
'worksheet name,第二行开始为worksheet中的第一行的列名
'*************************************************************************************

Sub ColloctColumn()
    Dim wk As Workbook           '目标文件
    Dim ws As Worksheet          '目标文件中的目标worksheet
    Dim ThisWs As Worksheet      '当前文件
    Dim ThisAllSheets As Integer '当前文件中worksheet的总和
    Dim ThisColCount As Integer  '当前文件的总列数

    Application.ScreenUpdating = False
    
    ThisAllSheets = ThisWorkbook.Sheets.Count
    
    Set wk = Application.Workbooks.Open("D:\all.xlsx")   '打开一个Excel文件
    Set ws = wk.Worksheets(1)           '打开的workbook中的第一个worksheet
    
    For i = 1 To ThisAllSheets Step 1   '循环worksheet
        Set ThisWs = ThisWorkbook.Worksheets(i)
        
        ThisColCount = ThisWs.UsedRange.Columns.Count
        ws.Cells(1, i) = ThisWs.Name                '将第一行第i列的单元格赋值为当前worksheet的sheet name.
        For j = 1 To ThisColCount Step 1            '循环columns
            ws.Cells(j + 1, i) = ThisWs.Cells(1, j) '将当前worksheet的第一行第j列单元格的值赋值给ws 的第j+1行第i列(这里类似转置)
        Next j
    Next i
    wk.Close
    Application.ScreenUpdating = True
End Sub

### 回答1: Sub ReadFromExcel() Dim xlApp As Excel.Application Dim xlWorkBook As Excel.Workbook Dim xlWorkSheet As Excel.Worksheet Dim Range As Excel.Range Dim rowNum As Integer Dim colNum As Integer Set xlApp = CreateObject("Excel.Application") Set xlWorkBook = xlApp.Workbooks.Open("C:\Users\My Documents\ExcelFile.xlsx") Set xlWorkSheet = xlWorkBook.Sheets("Sheet1") Set Range = xlWorkSheet.Range("A1:B4") rowNum = Range.Rows.Count colNum = Range.Columns.Count For i = 1 To rowNum For j = 1 To colNum Debug.Print Range.Cells(i, j).Value Next j Next i xlWorkBook.Close xlApp.Quit End Sub ### 回答2: 以下是使用CADVBA代码读取Excel文件数据的示例: ``` Sub ReadExcelData() Dim excelApp As Object Dim excelWorkbook As Object Dim excelWorksheet As Object Dim excelRange As Object ' 创建Excel应用程序对象 Set excelApp = CreateObject("Excel.Application") ' 打开Excel文件 Set excelWorkbook = excelApp.Workbooks.Open("C:\路径\文件名.xlsx") ' 选择要读取的工作表 Set excelWorksheet = excelWorkbook.Sheets("Sheet1") ' 指定要读取的数据范围 Set excelRange = excelWorksheet.Range("A1:D10") ' 循环读取每个单元格的数据并在CAD进行处理 For Each cell In excelRange ' 在CAD使用cell.Value进行处理 ' 例如: ' 如果要在CAD创建一个点对象,可以使用以下代码: ' ' Dim point As AcadPoint ' Set point = ThisDrawing.ModelSpace.AddPoint(cell.Value(1), cell.Value(2), cell.Value(3)) ' Next cell ' 关闭Excel文件 excelWorkbook.Close ' 退出Excel应用程序 excelApp.Quit ' 释放Excel对象 Set excelRange = Nothing Set excelWorksheet = Nothing Set excelWorkbook = Nothing Set excelApp = Nothing End Sub ``` 以上代码将通过CADVBAExcel文件读取数据范围为"A1:D10"的单元格数据,并在CAD进行处理。对于每个单元格,你可以使用cell.Value将其数据用于CAD的其他操作。注意,你需要根据自己的文件路径和数据范围进行相应的修改。 ### 回答3: 下面是一个简单的CADVBA代码示例,用于读取Excel文件的数据: ```vba Sub ReadExcelData() Dim ExcelApp As Object Dim ExcelWorkbook As Object Dim ExcelWorksheet As Object Dim FilePath As String Dim RowCount As Integer Dim ColumnCount As Integer Dim CurrentRow As Integer Dim CurrentColumn As Integer ' 打开Excel应用程序 Set ExcelApp = CreateObject("Excel.Application") ' 设置Excel应用程序是否可见 ExcelApp.Visible = True ' 打开Excel文件 FilePath = "C:\YourFilePath\YourExcelFile.xlsx" Set ExcelWorkbook = ExcelApp.Workbooks.Open(FilePath) ' 选择第一个工作表 Set ExcelWorksheet = ExcelWorkbook.Worksheets(1) ' 获取数据的行数和列数 RowCount = ExcelWorksheet.UsedRange.Rows.Count ColumnCount = ExcelWorksheet.UsedRange.Columns.Count ' 遍历每一行和每一列,读取数据 For CurrentRow = 1 To RowCount For CurrentColumn = 1 To ColumnCount ' 读取单元格的数值并将其赋值给CAD的变量或对象 ThisDrawing.ModelSpace.AddText ExcelWorksheet.Cells(CurrentRow, CurrentColumn).Value, _ ThisDrawing.ModelSpace.AddPoint(CurrentRow, CurrentColumn, 0) Next CurrentColumn Next CurrentRow ' 关闭Excel文件 ExcelWorkbook.Close ' 关闭Excel应用程序 ExcelApp.Quit ' 释放Excel对象 Set ExcelWorksheet = Nothing Set ExcelWorkbook = Nothing Set ExcelApp = Nothing End Sub ``` 请注意替换代码文件路径(FilePath)为你自己Excel文件的路径。此代码将打开指定的Excel文件,选择第一个工作表,然后遍历每个单元格的数据,并在CAD添加文本和点。你可以根据需要修改代码来适应你的具体情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值