sa3226390 发表于 2006-12-15 13:32:00

CAD的VBA如何读取EXCEL中的数据??

<p>如题:</p><p>CAD的VBA如何读取EXCEL单元格中的数据??比如说读取EXCEL中的数据直接做多段线、曲线等?</p><p>知道的朋友说说。</p><p>刚学习VBA不太熟悉,看到的例子都是用pionts(0 to 5)等二维做。想不明白怎么提取excel中(data1,data2)这种坐标式的数据???</p><p></p>

fjfhgdwfn 发表于 2006-12-15 15:19:00

<p>Set xl = CreateObject("excel.application")</p><p>创建EXCEL</p><p>xl.sheets(1).cell(i,II).value</p><p>引用单元格</p>

sa3226390 发表于 2006-12-15 18:26:00

谢谢

yxp 发表于 2006-12-17 20:24:00

<p>Attribute VB_Name = "Module1"<br/>Dim Excel As Excel.Application<br/>Dim ExcelSheet As Object<br/>Dim ExcelWorkbook As Object</p><p></p><p><br/>Public Function merge(str1 As String, str2 As String)</p><p>&nbsp;&nbsp;&nbsp; Excel.Range(str1 &amp; ":" &amp; str2).Select<br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; Excel.Selection.merge<br/>&nbsp;&nbsp;&nbsp; Excel.Selection.VerticalAlignment = xlVAlignCenter<br/>&nbsp;&nbsp;&nbsp; Excel.Selection.HorizontalAlignment = xlCenter<br/>&nbsp;&nbsp;&nbsp; Excel.Selection.Orientation = xlVertical</p><p>End Function</p><p><br/>Public Function quit()<br/>&nbsp;&nbsp;&nbsp; Dim ret As Integer<br/>&nbsp;&nbsp;&nbsp; ret = MsgBox("是否关闭并保存Excel?", vbYesNo)<br/>&nbsp;&nbsp;&nbsp; If (ret = vbYes) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim strname As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strname = InputBox("please input excel file name")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ExcelWorkbook.SaveAs strname<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Excel.Application.quit<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set Excel = Nothing<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; End If</p><p>End Function</p><p><br/>Public Function border(str1 As String, str2 As String)</p><p>&nbsp;&nbsp;&nbsp; Excel.Range(str1 &amp; ":" &amp; str2).Select<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp; <br/>&nbsp;&nbsp;&nbsp; Excel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone<br/>&nbsp;&nbsp;&nbsp; Excel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone<br/>&nbsp;&nbsp;&nbsp; With Excel.Selection.Borders(xlEdgeLeft)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .LineStyle = xlContinuous<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Weight = xlThin<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .ColorIndex = xlAutomatic<br/>&nbsp;&nbsp;&nbsp; End With<br/>&nbsp;&nbsp;&nbsp; With Excel.Selection.Borders(xlEdgeTop)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .LineStyle = xlContinuous<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Weight = xlThin<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .ColorIndex = xlAutomatic<br/>&nbsp;&nbsp;&nbsp; End With<br/>&nbsp;&nbsp;&nbsp; With Excel.Selection.Borders(xlEdgeBottom)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .LineStyle = xlContinuous<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Weight = xlThin<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .ColorIndex = xlAutomatic<br/>&nbsp;&nbsp;&nbsp; End With<br/>&nbsp;&nbsp;&nbsp; With Excel.Selection.Borders(xlEdgeRight)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .LineStyle = xlContinuous<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Weight = xlThin<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .ColorIndex = xlAutomatic<br/>&nbsp;&nbsp;&nbsp; End With<br/>&nbsp;&nbsp;&nbsp; With Excel.Selection.Borders(xlInsideVertical)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .LineStyle = xlContinuous<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Weight = xlThin<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .ColorIndex = xlAutomatic<br/>&nbsp;&nbsp;&nbsp; End With<br/>&nbsp;&nbsp;&nbsp; With Excel.Selection.Borders(xlInsideHorizontal)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .LineStyle = xlContinuous<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Weight = xlThin<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .ColorIndex = xlAutomatic<br/>&nbsp;&nbsp;&nbsp; End With<br/>&nbsp; </p><p>End Function</p><p>Public Function Border_bold(str1 As String, str2 As String)<br/>&nbsp;&nbsp;&nbsp; Excel.Range(str1 &amp; ":" &amp; str2).Select<br/>&nbsp;&nbsp;&nbsp; Excel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone<br/>&nbsp;&nbsp;&nbsp; Excel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone<br/>&nbsp;&nbsp;&nbsp; With Excel.Selection.Borders(xlEdgeLeft)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .LineStyle = xlContinuous<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Weight = xlMedium<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .ColorIndex = xlAutomatic<br/>&nbsp;&nbsp;&nbsp; End With<br/>&nbsp;&nbsp;&nbsp; With Excel.Selection.Borders(xlEdgeTop)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .LineStyle = xlContinuous<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Weight = xlMedium<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .ColorIndex = xlAutomatic<br/>&nbsp;&nbsp;&nbsp; End With<br/>&nbsp;&nbsp;&nbsp; With Excel.Selection.Borders(xlEdgeBottom)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .LineStyle = xlContinuous<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Weight = xlMedium<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .ColorIndex = xlAutomatic<br/>&nbsp;&nbsp;&nbsp; End With<br/>&nbsp;&nbsp;&nbsp; With Excel.Selection.Borders(xlEdgeRight)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .LineStyle = xlContinuous<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Weight = xlMedium<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .ColorIndex = xlAutomatic<br/>&nbsp;&nbsp;&nbsp; End With<br/>&nbsp;&nbsp;&nbsp; Excel.Selection.Borders(xlInsideVertical).LineStyle = xlNone<br/>&nbsp;&nbsp;&nbsp; Excel.Selection.Borders(xlInsideHorizontal).LineStyle = xlNone</p><p>End Function</p><p>Public Function writeExcel()<br/>&nbsp;&nbsp;&nbsp; Dim returnObj As ComSheet<br/>&nbsp;&nbsp;&nbsp; Dim sheet As Integer<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; Dim basePnt As Variant<br/>&nbsp;&nbsp;&nbsp; Dim rangeRow As Integer<br/>&nbsp;&nbsp;&nbsp; Dim rangeColumn As Integer<br/>&nbsp;&nbsp;&nbsp; Dim rangeRowMax As Integer<br/>&nbsp;&nbsp;&nbsp; Dim rangeColumnMax As Integer<br/>&nbsp;&nbsp;&nbsp; Dim cell1 As Object<br/>&nbsp;&nbsp;&nbsp; Dim cell2 As Object<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; On Error Resume Next<br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp; Set Excel = CreateObject("Excel.Application")<br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; Set ExcelWorkbook = Excel.Workbooks.Add<br/>&nbsp;&nbsp;&nbsp; Set ExcelSheet = Excel.ActiveSheet<br/>&nbsp;&nbsp;&nbsp; Excel.Visible = True<br/>&nbsp; <br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; On Error Resume Next<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; ' The following example waits for a selection from the user<br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp; ThisDrawing.Utility.GetEntity returnObj, basePnt, "Select an object"</p><p>&nbsp;&nbsp;&nbsp; Dim name<br/>&nbsp;&nbsp;&nbsp; name = returnObj.ObjectName<br/>&nbsp;&nbsp;&nbsp; Dim str As String<br/>&nbsp;&nbsp;&nbsp; str = returnObj.TextString<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; If Not (name = "TDbSheet") Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exit Function<br/>&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; nRowNum = returnObj.RowNum<br/>&nbsp;&nbsp;&nbsp; nColumnNum = returnObj.ColumnNum<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; For j = 0 To nColumnNum - 1 Step 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For i = 0 To nRowNum - 1 Step 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If (returnObj.IsRange(i, j)) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rangeRow = returnObj.rangeRow(i, j)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rangeColumn = returnObj.rangeColumn(i, j)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rangeRowMax = returnObj.rangeRowMax(i, j)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rangeColumnMax = returnObj.rangeColumnMax(i, j)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set cell1 = ExcelSheet.Cells(rangeRow + 1, rangeColumn + 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set cell2 = ExcelSheet.Cells(rangeRowMax + 1, rangeColumnMax + 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Excel.Range(cell1, cell2).Select<br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Excel.Selection.merge<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Excel.Selection.VerticalAlignment = xlVAlignCenter<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Excel.Selection.HorizontalAlignment = xlCenter<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'Excel.Selection.Orientation = xlVertical<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ExcelSheet.Cells(i + 1, j + 1).Value = returnObj.Text(i, j)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next i<br/>&nbsp;&nbsp;&nbsp; Next j<br/>&nbsp;&nbsp;&nbsp; </p><p>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; </p><p>&nbsp;&nbsp;&nbsp; returnObj.Color = acRed<br/>&nbsp;&nbsp;&nbsp; </p><p>&nbsp;&nbsp;&nbsp; <br/>End Function</p><p><br/>&nbsp;<br/>Public Sub readExcel()<br/>&nbsp;&nbsp;&nbsp; Dim Excel_cad As Excel.Application<br/>&nbsp;&nbsp;&nbsp; Dim ExcelSheet_cad As Object</p><p>&nbsp;&nbsp;&nbsp; On Error Resume Next<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; Set Excel_cad = GetObject(, "Excel.Application")<br/>&nbsp;&nbsp;&nbsp; If Err &lt;&gt; 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MsgBox ("请先打开一EXCEL文件,并框选中要复制的单元格。")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set Excel_cad = Nothing<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exit Sub<br/>&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; Dim sheet As ComSheet<br/>&nbsp;&nbsp;&nbsp; Set ExcelSheet_cad = Excel_cad.ActiveSheet<br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; Dim rowStart As Integer<br/>&nbsp;&nbsp;&nbsp; Dim columnStart As Integer<br/>&nbsp;&nbsp;&nbsp; rowStart = Excel_cad.Selection.row&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '起点<br/>&nbsp;&nbsp;&nbsp; columnStart = Excel_cad.Selection.column&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '起点<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp; Set sheet = New ComSheet<br/>&nbsp;&nbsp;&nbsp; Dim row As Integer<br/>&nbsp;&nbsp;&nbsp; Dim col As Integer<br/>&nbsp;&nbsp;&nbsp; sheetrow = Excel_cad.Selection.Rows.Count<br/>&nbsp;&nbsp;&nbsp; sheetcol = Excel_cad.Selection.Columns.Count<br/>&nbsp;&nbsp;&nbsp; If (sheetrow &lt; 1 Or sheetcol &lt; 1) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set ExcelSheet_cad = Nothing<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set Excel_cad = Nothing<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exit Sub<br/>&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; Dim ret As Integer<br/>&nbsp;&nbsp;&nbsp; ret = MsgBox("是否在图中新建一表格?Y-新建,N-更新(注意行列匹配)。", vbYesNo)<br/>&nbsp;&nbsp;&nbsp; If (ret = vbNo) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.Utility.GetEntity sheet, basePnt, "Select an object"<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim name<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name = sheet.ObjectName<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nRowNum = returnObj.RowNum<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nColumnNum = returnObj.ColumnNum</p><p>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Not (name = "TDbSheet") Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MsgBox ("选择失败! 请正确选择天正表格。")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set ExcelSheet_cad = Nothing<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set Excel_cad = Nothing<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exit Sub<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If (sheetrow &lt;&gt; sheet.RowNum) Or (sheetcol &lt;&gt; sheet.ColumnNum) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MsgBox ("表格行数或列数不匹配! 请正确选择天正表格。")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set ExcelSheet_cad = Nothing<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set Excel_cad = Nothing<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exit Sub<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '先把合并单元格恢复<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For j = 0 To sheetrow - 1 Step 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For i = 0 To sheetcol - 1 Step 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim IsMerged As Boolean<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IsMerged = sheet.IsRange(j, i)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If (IsMerged = True) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sheet.ExplodeCell j, i<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next i<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next j<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sheet.Create sheetrow, sheetcol<br/>&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; For j = 0 To sheetrow - 1 Step 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For i = 0 To sheetcol - 1 Step 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim str As String</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim r As Range<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim IsMerge As Boolean<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; flag = ExcelSheet_cad.Cells(rowStart + j, columnStart + i).MergeCells<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IsMerge = sheet.IsRange(j, i)</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If (flag = True And IsMerge = False) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set r = ExcelSheet_cad.Cells(rowStart + j, columnStart + i).MergeArea<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MergeStartR = r.row - rowStart&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '相对于TDbSheet<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MergeStartC = r.column - columnStart<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MergeCNum = r.Columns.Count<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MergeRNum = r.Rows.Count<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sheet.merge MergeStartR, MergeStartC, MergeRNum, MergeCNum<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If (IsMerge = False) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str = ExcelSheet_cad.Cells(rowStart + j, columnStart + i).Text ' sr modify by .Value 2004/6/14<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sheet.SetCellText j, i, str<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next i<br/>&nbsp;&nbsp;&nbsp; Next j<br/>&nbsp;&nbsp;&nbsp; ThisDrawing.Regen (acAllViewports)<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; 'Excel.Application.quit<br/>&nbsp;&nbsp;&nbsp; Set ExcelSheet_cad = Nothing<br/>&nbsp;&nbsp;&nbsp; Set Excel_cad = Nothing<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>End Sub<br/>&nbsp;<br/>Public Sub sheet2Excel()<br/>&nbsp;&nbsp;&nbsp; Dim OpenFlag As Boolean<br/>&nbsp;&nbsp;&nbsp; OpenFlag = True<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; Dim Excel_cad As Excel.Application<br/>&nbsp;&nbsp;&nbsp; Dim ExcelSheet_cad As Object<br/>&nbsp;&nbsp;&nbsp; Dim ExcelWorkbook_cad As Object</p><p>&nbsp;&nbsp;&nbsp; Dim returnObj As ComSheet<br/>&nbsp;&nbsp;&nbsp; Dim sheet As Integer<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; Dim basePnt As Variant<br/>&nbsp;&nbsp;&nbsp; Dim rangeRow As Integer<br/>&nbsp;&nbsp;&nbsp; Dim rangeColumn As Integer<br/>&nbsp;&nbsp;&nbsp; Dim rangeRowMax As Integer<br/>&nbsp;&nbsp;&nbsp; Dim rangeColumnMax As Integer<br/>&nbsp;&nbsp;&nbsp; Dim cell1 As Object<br/>&nbsp;&nbsp;&nbsp; Dim cell2 As Object<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; On Error Resume Next<br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp; Dim rowStart As Integer<br/>&nbsp;&nbsp;&nbsp; Dim columnStart As Integer<br/>&nbsp;&nbsp;&nbsp; rowStart = 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '起点<br/>&nbsp;&nbsp;&nbsp; columnStart = 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '起点</p><p>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; ' The following example waits for a selection from the user<br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp; ThisDrawing.Utility.GetEntity returnObj, basePnt, "Select an object"</p><p>&nbsp;&nbsp;&nbsp; Dim name<br/>&nbsp;&nbsp;&nbsp; name = returnObj.ObjectName</p><p>&nbsp;&nbsp;&nbsp; If Not (name = "TDbSheet") Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exit Sub<br/>&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; nRowNum = returnObj.RowNum&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'ComSheet行数<br/>&nbsp;&nbsp;&nbsp; nColumnNum = returnObj.ColumnNum&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'ComSheet列数<br/>&nbsp;&nbsp;&nbsp; <br/>'&nbsp;&nbsp;&nbsp; Dim ret As Integer<br/>'&nbsp;&nbsp;&nbsp; ret = MsgBox("是否在图中新建一Excel表单?Y-新建,N-更新已有表单的选中区域(注意行列匹配)。", vbYesNo)<br/>'&nbsp;&nbsp;&nbsp; If (ret = vbNo) Then<br/>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; On Error Resume Next<br/>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set Excel_cad = GetObject(, "Excel.Application")<br/>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Err &lt;&gt; 0 Then<br/>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MsgBox ("请先打开一EXCEL文件,并框选中要复制的单元格。")<br/>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set Excel_cad = Nothing<br/>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exit Sub<br/>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>'<br/>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OpenFlag = False<br/>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rowStart = Excel_cad.Selection.row&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '起点<br/>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; columnStart = Excel_cad.Selection.column&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '起点<br/>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sheetrow = Excel_cad.Selection.Rows.Count<br/>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sheetcol = Excel_cad.Selection.Columns.Count<br/>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If (sheetrow &lt;&gt; nRowNum) Or (sheetcol &lt;&gt; nColumnNum) Then<br/>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MsgBox ("所选EXCEL表格与天正表格行数或列数不匹配!")<br/>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set Excel_cad = Nothing<br/>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>'&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OpenFlag = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set Excel_cad = CreateObject("Excel.Application")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set ExcelWorkbook_cad = Excel_cad.Workbooks.Add<br/>&nbsp;&nbsp;&nbsp; 'End If<br/>&nbsp;&nbsp;&nbsp; Set ExcelSheet_cad = Excel_cad.ActiveSheet<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; '标题<br/>&nbsp;&nbsp;&nbsp; Set cell1 = ExcelSheet_cad.Cells(rowStart, columnStart + 1)<br/>&nbsp;&nbsp;&nbsp; Set cell2 = ExcelSheet_cad.Cells(rowStart, columnStart + nColumnNum)<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; Excel_cad.Range(cell1, cell2).Select<br/>&nbsp;&nbsp;&nbsp; Excel_cad.Selection.merge<br/>&nbsp;&nbsp;&nbsp; Excel_cad.Selection.VerticalAlignment = xlVAlignCenter<br/>&nbsp;&nbsp;&nbsp; Excel_cad.Selection.HorizontalAlignment = xlCenter<br/>&nbsp;&nbsp;&nbsp; Excel_cad.Cells(rowStart, columnStart + 1).Value = returnObj.Title<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; For j = 0 To nColumnNum - 1 Step 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For i = 0 To nRowNum - 1 Step 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If (OpenFlag = True) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If (returnObj.IsRange(i, j)) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rangeRow = returnObj.rangeRow(i, j)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rangeColumn = returnObj.rangeColumn(i, j)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If (i = rangeRow And j = rangeColumn) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rangeRowMax = returnObj.rangeRowMax(i, j)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rangeColumnMax = returnObj.rangeColumnMax(i, j)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set cell1 = ExcelSheet_cad.Cells(rangeRow + rowStart + 1, rangeColumn + columnStart + 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set cell2 = ExcelSheet_cad.Cells(rangeRowMax + rowStart + 1, rangeColumnMax + columnStart + 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If returnObj.TextColor(i, j) &gt; 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Excel_cad.Range(cell1, cell2).Interior.Color = returnObj.TextColor(i, j)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Excel_cad.Range(cell1, cell2).Interior.Pattern = xlSolid<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Excel_cad.Range(cell1, cell2).Select<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Excel_cad.Selection.merge<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Excel_cad.Selection.VerticalAlignment = xlVAlignCenter<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Excel_cad.Selection.HorizontalAlignment = xlCenter<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If returnObj.TextColor(i, j) &gt; 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ExcelSheet_cad.Cells(i + rowStart + 1, j + columnStart + 1).Interior.Color = returnObj.TextColor(i, j)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ExcelSheet_cad.Cells(i + rowStart + 1, j + columnStart + 1).Interior.Pattern = xlSolid<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ExcelSheet_cad.Cells(i + rowStart + 1, j + columnStart + 1).Value = returnObj.Text(i, j)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ExcelSheet_cad.Cells(i + rowStart, j + columnStart).Value = returnObj.Text(i, j)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next i<br/>&nbsp;&nbsp;&nbsp; Next j<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; Excel_cad.Visible = True<br/>&nbsp;&nbsp;&nbsp; Set ExcelWorkbook_cad = Nothing<br/>&nbsp;&nbsp;&nbsp; Set ExcelSheet_cad = Nothing<br/>&nbsp;&nbsp;&nbsp; Set Excel_cad = Nothing</p><p>End Sub</p><p><br/></p>

adison 发表于 2006-12-18 13:12:00

最好先判断EXCEL是否已经运行。<br/> If DetectExcel() = False Then<br/>  'MsgBox "EXCEL没有运行!"<br/>Set e1 = CreateObject("Excel.application")<br/>e1.Visible = True<br/>e1.Workbooks.add<br/>Set ew = e1.ActiveWorkbook.Sheets("sheet1")<br/><br/>Else<br/>Set e1 = GetObject(, "Excel.application")<br/>e1.Workbooks.add<br/>Set ew = e1.ActiveWorkbook.ActiveSheet<br/>End If
页: [1]
查看完整版本: CAD的VBA如何读取EXCEL中的数据??