| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 932 人关注过本帖
标题:从VBA转到VB6该如何转,请教大虾,先谢谢
只看楼主 加入收藏
yzpgz
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2014-2-14
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:11 
从VBA转到VB6该如何转,请教大虾,先谢谢
Dim i, k As Integer
Dim KH(100) As String
Dim DS(100) As Double
Dim WD(100) As Double
i = 1
k = 1
wjm = "d:\上传\" & CStr("SW-" & Month(Date) & "-" & Day(Date) & "-" & Hour(Time) & "-" & Minute(Time) & "-" & Second(Time)) & ".txt"
Do While Application.ActiveWorkbook.sheets("4-水位").cells(35 + i - 1, 5).Value <> ""
   KH(i) = ActiveWorkbook.sheets("4-水位").cells(35 + i - 1, 5).Value
   DS(i) = ActiveWorkbook.sheets("4-水位").cells(35 + i - 1, 6).Value
   WD(i) = ActiveWorkbook.sheets("4-水位").cells(35 + i - 1, 8).Value
   i = i + 1
Loop
Open wjm For Output As #1
   Print #1, ActiveWorkbook.sheets("4-水位").cells(33, 6).Value
      For k = 1 To i - 1
        Print #1, "NO="; CStr(KH(k)); Spc(1); "0"; CStr(VBA.Format(DS(k), "0.0") * 10); Spc(1); "0"; CStr(VBA.Format(WD(k), "0.0") * 10)
     Next k
Close
搜索更多相关主题的帖子: 如何 
2014-02-14 16:15
yzpgz
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2014-2-14
收藏
得分:0 
显示  实时错误“424”:要求对象
Do While Application.ActiveWorkbook.sheets("4-水位").cells(35 + i - 1, 5).Value <> ""
此行错误,请高手指点
2014-02-14 16:34
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
Application
这个对象,是在 EXECL VBA 中,是指 EXCEL 本身。
在VB中的话,那么需要生成这么一个对象,然后操作它,打开所需的EXCEL 文件。

 ActiveWorkbook
指 活动工作簿,在 VB里,不能省前面的对象名。

具体如何操作,你百度一下 VB 操作 EXCEL 方面 的内容就行了。

授人于鱼,不如授人于渔
早已停用QQ了
2014-02-14 16:42
yzpgz
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2014-2-14
收藏
得分:0 
非常感谢,但还是不太明白,能否再说详细些,不胜感谢
2014-02-14 16:44
w360989426
Rank: 5Rank: 5
等 级:职业侠客
威 望:4
帖 子:228
专家分:301
注 册:2013-11-12
收藏
得分:20 
Dim excel1 As Excel.Application
    Set excel1 = New Excel.Application
Dim i, k As Integer
Dim KH(100) As String
Dim DS(100) As Double
Dim WD(100) As Double
i = 1
k = 1
wjm = "d:\上传\" & CStr("SW-" & Month(Date) & "-" & Day(Date) & "-" & Hour(Time) & "-" & Minute(Time) & "-" & Second(Time)) & ".txt"
Do While  excel1.ActiveWorkbook.sheets("4-水位").cells(35 + i - 1, 5).Value <> ""
   KH(i) =  excel1.ActiveWorkbook.sheets("4-水位").cells(35 + i - 1, 5).Value
   DS(i) =  excel1.ActiveWorkbook.sheets("4-水位").cells(35 + i - 1, 6).Value
   WD(i) =  excel1.ActiveWorkbook.sheets("4-水位").cells(35 + i - 1, 8).Value
   i = i + 1
Loop
Open wjm For Output As #1
   Print #1,  excel1.ActiveWorkbook.sheets("4-水位").cells(33, 6).Value
      For k = 1 To i - 1
        Print #1, "NO="; CStr(KH(k)); Spc(1); "0"; CStr(VBA.Format(DS(k), "0.0") * 10); Spc(1); "0"; CStr(VBA.Format(WD(k), "0.0") * 10)
     Next k
代码已做修改,请测试,测试之前,先在vb引用excel和office
2014-02-14 16:46
w360989426
Rank: 5Rank: 5
等 级:职业侠客
威 望:4
帖 子:228
专家分:301
注 册:2013-11-12
收藏
得分:0 
给你一段列子你自己看吧
 Dim excel1 As Excel.Application
    Set excel1 = New Excel.Application
    excel1.Visible = True
    excel1.Workbooks.Open (App.Path & "\程序模版.xls")
    excel1.Workbooks("程序模版.xls").Sheets("对账结果").Select
    If excel1.Workbooks("程序模版.xls").ReadOnly = True Then
        excel1.DisplayAlerts = False
        excel1.Application.Quit
        excel1.DisplayAlerts = True
        MsgBox "你已经打开“程序模版.xls”" & Chr(13) & "请关闭原有的“程序模版.xls”,在运行导出到excel。", vbOKOnly, "错误提示"
        Exit Sub
    Else
        excel1.Workbooks("程序模版.xls").Sheets("对账结果").Cells.Clear
        excel1.Workbooks("程序模版.xls").Sheets("对账结果").Range("A2").CopyFromRecordset Adodc1.Recordset
    End If
    If 单号金额对账 = 1 Then
        With excel1.Workbooks("程序模版.xls").Sheets("对账结果")
            .Cells(1, 1) = "日期"
            .Cells(1, 2) = "订单编号"
            .Cells(1, 3) = "酒店名称"
            .Cells(1, 4) = "厨房"
            .Cells(1, 5) = "单号总额"
            .Cells(1, 6) = "入账月份"
            .Cells.Font.Size = 9
            .Cells.Replace What:=" ", Replacement:="", LookAt:=xlPart, SearchOrder:= _
                           xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
            .Columns.AutoFit
            .Rows.AutoFit
            .Columns("e:e").NumberFormatLocal = "¥#,##0.00;¥-#,##0.00"
            .Columns("d:d").NumberFormatLocal = "yyyy-mm""月"""
        End With
end if
2014-02-14 16:50
yzpgz
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2014-2-14
收藏
得分:0 
“w360989426”,你好,非常感谢
Dim excel1 As Excel.Application
显示 编译错误:用户定义类型未定义
是不是由于我安装的是vb精简版的原因呢
2014-02-14 16:54
yzpgz
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2014-2-14
收藏
得分:0 
引用后,显示  实时错误‘91’:对象变量或With块变量未设置
Do While  excel1.ActiveWorkbook.sheets("4-水位").cells(35 + i - 1, 5).Value <> ""
此行错误,请指点
2014-02-14 17:20
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
收藏
得分:0 
以下是引用yzpgz在2014-2-14 17:20:17的发言:

引用后,显示  实时错误‘91’:对象变量或With块变量未设置
Do While  excel1.ActiveWorkbook.sheets("4-水位").cells(35 + i - 1, 5).Value <> ""
此行错误,请指点
Set excel1 = New Excel.Application
引用加复制。重点 New
2014-02-14 17:29
yzpgz
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2014-2-14
收藏
得分:0 
不明白,请版主详解,不胜感谢
2014-02-14 17:32
快速回复:从VBA转到VB6该如何转,请教大虾,先谢谢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026342 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved