跪求這樣的VB宏 。。。。。。。。。。。。。。。。
uj5u.com熱心網友回復:
好比我想做一條線 每條線上自己標識了刻度 好比我自己檢索其中一段線路 輸入這個線路的里程 然后這條線路上輸入的里程點會變顏色 或者我直接點擊這線上的某一點 它就能顯示自己所在的里程數uj5u.com熱心網友回復:
其實吧,你要的這個不就和橫向滾動條一樣么,設定最大最小值,然后根據值確定點在哪,根據點確定一個值。只不過這下你要用線條表示而已,還有一個分段。如果只是畫線以及中間一段換顏色比較簡單,但你要回應滑鼠點擊事件那就建議自定義控制元件了。沒時間給你寫控制元件代碼,簡單給你位置計算的方法吧。
假設你所要表示的數值范圍在 min 及 max之間。線條起始點橫坐標標為xs 結束點為 xe。這里舉例是說橫線,如果你畫的是豎線或者斜線y坐標的演算法和橫坐標一樣。
當你想確定一個值v在線條中的位置,其實就是找到 v在數值范圍中的位置。 (v-min)/(max-v) 這就是這個值將數域劃分為兩段以后這兩段的比例。相應的 我們假設一個坐標xv 它把線段分割成兩段后ude比例是(xv-xs)/(xe-xv) 。因為你要把數值在數域中的位置在線段中表示,于是這兩個比例應該是一樣的。好了,max min xs xe 是已經可以確定了的,那么v和xv 只要知道一個就能求出另一個。解方程去吧。
uj5u.com熱心網友回復:
給你一段代碼參考一下吧。把下圖另存為WinRAR檔案(名字隨意,擴展名是rar)就可以打開、解壓了。
壓縮包中含2個檔案,解壓后要放一起。
新建一個Excel檔案,然后在VBE中匯入解壓出來的 UserForm1.frm ,再運行就能看到效果了。
數值范圍是0到100。
這個代碼很多細節方面是沒有進行處理的,你有需要就自己修改處理。
因為VBA表單的度量單位不是“像素”,因此這個“視覺效果”跟“值”之間難以做到精確匹配。
另外如果你想要“標示一段值域”,那就自己計算并調整“游標”的寬度。
反正不太清楚你的具體想法,我去猜測然后“處理應用細節”,明顯不切實際。

VBE不支持“自定義控制元件”,其實這個能用VB(或其它開發語言)做一個ocx來使用,也許可以達到“最佳效果”。
畢竟這樣處理,值的范圍、合法性、顯示都可以按照自己的想法進行“精確控制”(如果采用“自繪”的方式)。
uj5u.com熱心網友回復:
忘了說:可以在文本框中輸入合法值(0到100),“游標”自動跳到對應位置;
也可以左鍵在“線”上點擊、或左鍵點按并拖動,“游標”和值跟隨變化。
uj5u.com熱心網友回復:
使用MSChart控制元件。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/57445.html
標籤:VB基礎類
上一篇:主機端輸入到客戶端的問題
