注册 登录
编程论坛 VB6论坛

求助:一个Excel工作簿有多个表,如何才能把符合条件的数据写入到同名表中

kissis 发布于 2022-09-29 22:19, 1519 次点击
Dim i As Integer
Dim j As Integer
Dim Named As String
MSHFlexGrid1.Redraw = False
Set xlApp = CreateObject("Excel.Application")  
   Set xlApp = CreateObject("Excel.Application")  
    Set xlBook = xlApp.Workbooks.Open(App.Path & "\DATA\DATA.xls")
    xlApp.Visible = True
    For i = 1 To 8
    Named = xlBook.Worksheets(i).Name
     Next i
   If Named = Text4.Text Then
   Set xlSheet = xlBook.Worksheets("Named")
     For i = 0 To MSHFlexGrid1.Rows - 1
            For j = 0 To MSHFlexGrid1.Cols - 1
                 MSHFlexGrid1.Row = i
                 MSHFlexGrid1.Col = j         
xlBook.Worksheets("Named").Cells(i + 1, j + 1) = Trim(MSHFlexGrid1.TextMatrix(i, j))
Next j
Next i
End If
MSHFlexGrid1.Redraw = True
这是我写的代码运行后并没数据写入望各位大佬帮忙修改一下。
6 回复
#2
约定的童话2022-09-30 02:15
给你个思路:获取工作表数据到数组里面,然后再循环添加,注意控件对象不要写错了
#3
kissis2022-09-30 12:30
MSHFlexGrid写入excel时身份证号码变成了E+17该如何解决
用xlApp.Selection.NumberFormatLocal = "@"也不能
#4
风吹过b2022-09-30 13:12
到身份证号前面加一个 英文单引号 可以吗?
#5
kissis2022-09-30 14:15
身份证号在MSHFlexGrid控件中的位置是不固定的是随着复选框勾选的顺序而变幻,如果用"'"号的代码如何写?遍历MSHFlexGrid取得身份证号所在列的序数然后再赋值吗?
#6
风吹过b2022-09-30 18:26
写入excel时,判断一下,为数值,并且长度超过 14位的,都给个单引号。
这样可以吗?

#7
kissis2022-09-30 22:10
原来用得好好的,现一运行就提示自动化错误对象库未注册,用cmd命令重新注册和重新安装office也不行;各位有什么好的办法。
1