主頁 > 軟體工程 > 哪位好心人幫我改下我的vb程式

哪位好心人幫我改下我的vb程式

2020-09-23 09:47:22 軟體工程

我是大四學生,論文題目是《基于vb的上位機智能儀表監控程式設計》,采用vB通信控制元件MSComm及其編程方法進行上位機(PC機)通信軟體的設計,實作了上位機與下位機(單片機系統)之間的資料傳送以及實時資料采集。老師的意思是把電壓、電流、功率通過一個picture界面顯示出來,然后再把值用excel統計出來,我目前只做了個電壓的,運行還有些許問題,我下的是vb6.0企業版,但是控制元件找不到PortOpen,input,inbuffercount,output。 想添加“Microsoft Excel Object Library”工程參考里也找不到,就找到了Kingsoft excel object library,結果顯示”加載DLL錯誤“。現在是運行后沒有坐標,麻煩大家幫我看看如何修改
 
Dim myexcel As Excel.Application ' 定義 Application 物件變數
Dim mybook As Excel.Workbook ' 定義作業薄物件變數
Dim mysheet As Excel.Worksheet ' 定義作業表物件變數
Dim n As Integer ' 定義電子表格中已有內容的行數變數

'"開始采集"程式代碼:
Private Sub Command1_Click()
Timer1.Enabled = True
Timer2.Enabled = True
Call draw
Set myexcel = Excel.Application ' 啟動 Excel 應用軟體
Set mybook = myexcel.Workbooks.Open(" e:/meter.xls ") ' 打開 E 盤作業薄檔案"
Set mysheet = mybook.Worksheets(1) 'mysheet指向作業薄中的第 1 張作業表
myexcel.Visible = True ' 顯示 Excel 應用環境 (作業表可視)
n = mysheet.UsedRange.Rows.Count ' 獲取電子表格中已有內容的行數
End Sub

'“停止監測”程式代碼
Private Sub Command2_Click()
Timer1.Enabled = False ' 不允許 Timer1 計時
mybook.Save ' 保存作業薄
myexcel.Quit ' 關閉 Excel 應用軟體
End Sub


'注意:在程式開始之前,必須清空發送和接識訓沖區,以免出錯。
Private Sub Form_Load()
MSComm1.Settings = "9600,n,8,1"   ' 設定波特率和發送字符格式
MSComm1.CommPort = 1 ' 設定通訊串口
MSComm1.InputLen = 0 ' 設定或回傳一次從接識訓沖區中讀取位元組數,0表示一次讀取所有資料
MSComm1.InBufferSize = 512 ' 設定接識訓沖區512Byte
MSComm1.InBufferCount = 0
MSComm1.OutBufferSize = 512 ' 設定發送緩沖區512Byte
MSComm1.OutBufferCount = 0
MSComm1.RThreshold = 6 ' 每個字符到接識訓沖區都觸發接收事件
MSComm1.SThreshold = 1
End Sub


' 接收單片機發送的資料,并顯示
Private Sub MSComm1_OnComm()
Dim inth() As Byte ' 存放輸入的 Byte 型采樣資料
Dim th(5) As Single ' 存放 Byte 型轉為 Single型資料
Dim vol As Single ' 電壓值
If MSComm1.CommEvent = comEvReceive Then
inth = MSComm1.Input ' 輸入 Byte 型資料存入inth
For i = 0 To 5
th(i) = inth(i) ' 把 Byte 型轉換為 Single 型存入 t h
Next i
If (inth(0) Xor inth(1) Xor inth(2) Xor inth(3) Xor inth(4)) = inth(5) Then
' 異或校驗正確時:
vol = th(2) * 256 + th(1) ' 計算電壓采樣值(二進制變十進制)
vol = 50 * vol / 1024 ' 計算電壓測量值
vol = Format$(vol, "0.0")

Text2.Text = vol & " V" ' 文本框顯示 1 號表測量值
n = n + 1 ' 電子表格中已有內容的行數 +1(即指向首個空行)
mysheet.Cells(n, 1).Value = Time ' 當前時間存入單元格
mysheet.Cells(n, 2).Value = vol '1 號表電壓值存入第 n 行 2 列單元格

End If

End If
mybook.Save ' 保存作業薄(讀 1 次表保存 1 次)
End If
Select Case MSComm1.CommEvent ' 設定oncomm事件,讀取片機記憶體的值
Case comEvReceive
Inputsignal = MSComm1.Input
Text2.Text = Asc(Inputsignal) ' 單片機記憶體的值用Text2顯示出
Case Else
End Select
End Sub

' 繪制坐標系子函式
Private Sub Picture1_draw() '繪制坐標系
Dim X As Integer
Dim Y As Integer
Picture1.Scale (-100, 70)-(1600, -10) '定義坐標系'畫坐標系
Picture1.ForeColor = RGB(200, 5, 200)
Picture1.DrawWidth = 1
Picture1.Line (0, 0)-(0, 65)
Picture1.Line (0, 0)-(1550, 0) '畫電壓坐標點(以10v為1個單位)
Picture1.ForeColor = RGB(0, 0, 255)
Picture1.DrawWidth = 4
For Y = 0 To 60 Step 10
Picture1.PSet (0, Y)
Next Y '畫電壓坐標點(以1v為1個單位)
Picture1.ForeColor = RGB(0, 0, 255)
Picture1.DrawWidth = 2
For Y = 1 To 59
Picture1.PSet (0, Y)
Next X '畫時間坐標點(以1小時為1個單位)
For X = 0 To 1440 Step 60
Picture1.PSet (X, 0)
Next X '畫時間坐標點(以6小時為1個單位)
Picture1.ForeColor = RGB(0, 0, 255)
Picture1.DrawWidth = 4
Picture1.PSet (720, 0)
Picture1.PSet (360, 0)
Picture1.PSet (1080, 0)
Picture1.PSet (1440, 0)
End Sub


' 提取單片機溫度資料,并實作動態繪圖
Private Sub Time2_Timer()
'用來實時提取串口資料并實時繪圖。測電壓可每分鐘提取一次資料
Dim t As Single
t = Val(Text2.Text) '繪制電壓實時變化曲線
'繪制電壓實時變化曲線
Picture1.ForeColor = RGB(0, 0, 255)
Picture1.DrawWidth = 3
X = X + 1
Picture1.PSet (X, t)
If X > 1440 Then
Picture1.Cls
X = 0 '重繪坐標系
Call draw
End Sub




 現在運行不出來,也沒有坐標顯示。

uj5u.com熱心網友回復:

Microsoft Excel Object Library 需要安裝office excel
沒有設備沒法測驗.....

uj5u.com熱心網友回復:

我安裝了  但就是沒有的   那麻煩你幫我看下代碼有什么問題

uj5u.com熱心網友回復:

1、excel工程庫一般是 Microsoft Excel 11.0 Object Library 或 Microsoft Excel 12.0 Object Library 等形式;
2、Set myexcel = Excel.Application ' 啟動 Excel 應用軟體
該句應修改為:Set myexcel =new Excel.Application ' 啟動 Excel 應用軟體
3、多用with...end with結構會有很多好處....參考下面代碼(沒除錯過,自己除錯看看哪出錯)
Option Explicit
Dim MyExcel As Excel.Application ' 定義 Application 物件變數
Dim MyBook As Excel.Workbook ' 定義作業薄物件變數
Dim MySheet As Excel.Worksheet ' 定義作業表物件變數
Dim n As Integer ' 定義電子表格中已有內容的行數變數
'"開始采集"程式代碼:
Private Sub Command1_Click()
    Timer1.Enabled = True
    Timer2.Enabled = True
    Call Draw
    Set MyExcel = New Excel.Application ' 啟動 Excel 應用軟體
    Set MyBook = MyExcel.Workbooks.Open(" e:/meter.xls ") ' 打開 E 盤作業薄檔案"
    Set MySheet = MyBook.Worksheets(1) 'mysheet指向作業薄中的第 1 張作業表
    MyExcel.Visible = True ' 顯示 Excel 應用環境 (作業表可視)
    n = MySheet.UsedRange.Rows.Count ' 獲取電子表格中已有內容的行數
End Sub
'“停止監測”程式代碼
Private Sub Command2_Click()
    Timer1.Enabled = False ' 不允許 Timer1 計時
    MyBook.Save ' 保存作業薄
    MyExcel.Quit ' 關閉 Excel 應用軟體
End Sub
'注意:在程式開始之前,必須清空發送和接識訓沖區,以免出錯。
Private Sub Form_Load()
    With MsComm1
        .Settings = "9600,n,8,1"   ' 設定波特率和發送字符格式
        .CommPort = 1 ' 設定通訊串口
        .InputLen = 0 ' 設定或回傳一次從接識訓沖區中讀取位元組數,0表示一次讀取所有資料
        .InBufferSize = 512 ' 設定接識訓沖區512Byte
        .InBufferCount = 0
        .OutBufferSize = 512 ' 設定發送緩沖區512Byte
        .OutBufferCount = 0
        .RThreshold = 6 ' 每個字符到接識訓沖區都觸發接收事件
        .SThreshold = 1
    End With
End Sub
' 接收單片機發送的資料,并顯示
Private Sub MSComm1_OnComm()
    Dim inth() As Byte ' 存放輸入的 Byte 型采樣資料
    Dim th(5) As Single ' 存放 Byte 型轉為 Single型資料
    Dim vol As Single ' 電壓值
    If MsComm1.CommEvent = comEvReceive Then
        inth = MsComm1.Input ' 輸入 Byte 型資料存入inth
        For i = 0 To 5
            th(i) = inth(i) ' 把 Byte 型轉換為 Single 型存入 t h
        Next i
        If (inth(0) Xor inth(1) Xor inth(2) Xor inth(3) Xor inth(4)) = inth(5) Then
            ' 異或校驗正確時:
            vol = th(2) * 256 + th(1) ' 計算電壓采樣值(二進制變十進制)
            vol = 50 * vol / 1024 ' 計算電壓測量值
            vol = Format$(vol, "0.0")
            Text2.Text = vol & " V" ' 文本框顯示 1 號表測量值
            n = n + 1 ' 電子表格中已有內容的行數 +1(即指向首個空行)
            MySheet.Cells(n, 1).Value = Time ' 當前時間存入單元格
            MySheet.Cells(n, 2).Value = vol '1 號表電壓值存入第 n 行 2 列單元格
        End If
    End If
    MyBook.Save ' 保存作業薄(讀 1 次表保存 1 次)
    ''End If
    Select Case MsComm1.CommEvent ' 設定oncomm事件,讀取片機記憶體的值
    Case comEvReceive
        Inputsignal = MsComm1.Input
        Text2.Text = Asc(Inputsignal) ' 單片機記憶體的值用Text2顯示出
    Case Else
    End Select
End Sub
' 繪制坐標系子函式
Private Sub Draw() '繪制坐標系
    Dim X As Integer
    Dim Y As Integer
    With Picture1
        Picture1.Scale (-100, 70)-(1600, -10)  '定義坐標系'畫坐標系
        .ForeColor = RGB(200, 5, 200)
        .DrawWidth = 1
        Picture1.Line (0, 0)-(0, 65)
        Picture1.Line (0, 0)-(1550, 0) '畫電壓坐標點(以10v為1個單位)
        .ForeColor = RGB(0, 0, 255)
        .DrawWidth = 4
        For Y = 0 To 60 Step 10
            Picture1.PSet (0, Y)
        Next Y '畫電壓坐標點(以1v為1個單位)
        .ForeColor = RGB(0, 0, 255)
        .DrawWidth = 2
        For Y = 1 To 59
            Picture1.PSet (0, Y)
        Next X '畫時間坐標點(以1小時為1個單位)
        For X = 0 To 1440 Step 60
            Picture1.PSet (X, 0)
        Next X '畫時間坐標點(以6小時為1個單位)
        .ForeColor = RGB(0, 0, 255)
        .DrawWidth = 4
        Picture1.PSet (720, 0)
        Picture1.PSet (360, 0)
        Picture1.PSet (1080, 0)
        Picture1.PSet (1440, 0)
    End With
End Sub
' 提取單片機溫度資料,并實作動態繪圖
Private Sub Time2_Timer()
    '用來實時提取串口資料并實時繪圖。測電壓可每分鐘提取一次資料
    Dim t As Single
    t = Val(Text2.Text) '繪制電壓實時變化曲線
    '繪制電壓實時變化曲線
    Picture1.ForeColor = RGB(0, 0, 255)
    Picture1.DrawWidth = 3
    X = X + 1
    Picture1.PSet (X, t)
    If X > 1440 Then
    Picture1.Cls
    X = 0 '重繪坐標系
    Call Draw
End Sub

uj5u.com熱心網友回復:

一般安裝的OFFICE都是精簡版的,一些功能都去掉了。最好是上網下載那些完全版的,一般要500多M的樣子,好像是最好是2003版的。祝好運

uj5u.com熱心網友回復:

你安裝的 金山office  所以會有這個 “Kingsoft excel object library”
而你要參考的是 微軟的office “ Microsoft Excel Object Library”
所以你的程式肯定跑不起來的,你去百度搜索,“office2003最終完美版”,記住不要用迅雷下,要不然又下到金山office 。選擇全部安裝即可,金山的最好還是卸掉安全點

uj5u.com熱心網友回復:

如果裝了還不行,那就要重裝一下作業系統了。或者安裝2003,2007,精簡版等多個OFFICE,有可能有的能參考。

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/110914.html

標籤:網絡編程

上一篇:{求助}vb6.0機房上課資訊管理系統

下一篇:亂數字自由組合排列并且滿足條件

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • Git本地庫既關聯GitHub又關聯Gitee

    創建代碼倉庫 使用gitee舉例(github和gitee差不多) 1.在gitee右上角點擊+,選擇新建倉庫 ? 2.選擇填寫倉庫資訊,然后進行創建 ? 3.服務端已經準備好了,本地開始作準備 (1)Git 全域設定 git config --global user.name "成鈺" git c ......

    uj5u.com 2020-09-10 05:04:14 more
  • CODING DevOps 代碼質量實戰系列第二課,相約周三

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。**《DevOps 代碼質量實戰(PHP 版)》**為 CODING DevOps 代碼質量實戰系列的第二課,同時也是本系列的 PHP ......

    uj5u.com 2020-09-10 05:07:43 more
  • 推薦Scrum書籍

    推薦Scrum書籍 直接上干貨,推薦書籍清單如下(推薦有順序的哦) Scrum指南 Scrum精髓 Scrum敏捷軟體開發 Scrum捷徑 硝煙中的Scrum和XP : 我們如何實施Scrum 敏捷軟體開發:Scrum實戰指南 Scrum要素 大規模Scrum:大規模敏捷組織的設計 用戶故事地圖 用 ......

    uj5u.com 2020-09-10 05:07:45 more
  • CODING DevOps 代碼質量實戰系列最后一課,周四發車

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。 **《DevOps 代碼質量實戰(Java 版)》**為 CODING DevOps 代碼質量實戰系列的最后一課,同時也是本系列的 ......

    uj5u.com 2020-09-10 05:07:52 more
  • 敏捷軟體工程實踐書籍

    Scrum轉型想要做好,第一步先了解并真正落實Scrum,那么我推薦的Scrum書籍是要看懂并實踐的。第二步是團隊的工程實踐要做扎實。 下面推薦工程實踐書單: 重構:改善既有代碼的設計 決議極限編程 : 擁抱變化 代碼整潔代碼 程式員的職業素養 修改代碼的藝術 撰寫可讀代碼的藝術 測驗驅動開發 : ......

    uj5u.com 2020-09-10 05:07:55 more
  • Jenkins+svn+nginx實作windows環境自動部署vue前端專案

    前面文章介紹了Jenkins+svn+tomcat實作自動化部署,現在終于有空抽時間出來寫下Jenkins+svn+nginx實作自動部署vue前端專案。 jenkins的安裝和配置已經在前面文章進行介紹,下面介紹實作vue前端專案需要進行的哪些額外的步驟。 注意:在安裝jenkins和nginx的 ......

    uj5u.com 2020-09-10 05:08:49 more
  • CODING DevOps 微服務專案實戰系列第一課,明天等你

    CODING DevOps 微服務專案實戰系列第一課**《DevOps 微服務專案實戰:DevOps 初體驗》**將由 CODING DevOps 開發工程師 王寬老師 向大家介紹 DevOps 的基本理念,并探討為什么現代開發活動需要 DevOps,同時將以 eShopOnContainers 項 ......

    uj5u.com 2020-09-10 05:09:14 more
  • CODING DevOps 微服務專案實戰系列第二課來啦!

    近年來,工程專案的結構越來越復雜,需要接入合適的持續集成流水線形式,才能滿足更多變的需求,那么如何優雅地使用 CI 能力提升生產效率呢?CODING DevOps 微服務專案實戰系列第二課 《DevOps 微服務專案實戰:CI 進階用法》 將由 CODING DevOps 全堆疊工程師 何晨哲老師 向 ......

    uj5u.com 2020-09-10 05:09:33 more
  • CODING DevOps 微服務專案實戰系列最后一課,周四開講!

    隨著軟體工程越來越復雜化,如何在 Kubernetes 集群進行灰度發布成為了生產部署的”必修課“,而如何實作安全可控、自動化的灰度發布也成為了持續部署重點關注的問題。CODING DevOps 微服務專案實戰系列最后一課:**《DevOps 微服務專案實戰:基于 Nginx-ingress 的自動 ......

    uj5u.com 2020-09-10 05:10:00 more
  • CODING 儀表盤功能正式推出,實作作業資料可視化!

    CODING 儀表盤功能現已正式推出!該功能旨在用一張張統計卡片的形式,統計并展示使用 CODING 中所產生的資料。這意味著無需額外的設定,就可以收集歸納寶貴的作業資料并予之量化分析。這些海量的資料皆會以圖表或串列的方式躍然紙上,方便團隊成員隨時查看各專案的進度、狀態和指標,云端協作迎來真正意義上 ......

    uj5u.com 2020-09-10 05:11:01 more
最新发布
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:41:12 more
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:35:34 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:05:44 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:00:18 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:20:31 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:55 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:18:51 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:00 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:17:55 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:12:06 more