回 帖 发 新 帖 刷新版面

主题:上下标问题

请问各位老师:我想把表单中录入的数据存入表或导入EXCEL后,数字自动有上下标的表示?如:10的平方等等。谢谢各位!!

回复列表 (共10个回复)

沙发


oE.ActiveCell.Characters(Start:=4, Length:=1).Font.Superscript = .T.

板凳

cbl518老师:谢谢你多次的帮助。首先祝你奥运快乐!关于上下标问题,我在VF代码里
试过了,也许我没理解“开始”、“长度”是怎样表示的,总出现“WITH/ENDWITH以外无效”的提示,由此请麻烦你给具体写一下该代码!
如:1、我在文本框里输入1000,在报表里或EXCEL里如何把它表示为10的三次方;
2、在文本框里输入H2O(水分子式),在报表里或EXCEL里如何把2表示为下标。特别在报表里我一直没解决该问题

3 楼

用VFP控制EXCEL

4 楼

用VFP控制EXCEL

oE.ActiveCell..FORMULAR1C1 = '10 3'
1. oE.ActiveCell.Characters(Start:=4, Length:=1).Font.Superscript = True

oE.ActiveCell..FORMULAR1C1 = 'H2O'
2. oE.ActiveCell.Characters(Start:=2, Length:=1).Font.Subscript = True

5 楼

yzzd2167老师:谢谢你!这个代码只能设置EXCEL中的固定值,因在文本框输入的值是随机变化的,所以我希望在输入值后自动生成上下标。另:能否在VF报表里也实现该功能?

6 楼

下面兩段是將文字copy成圖片和貼圖片的宏代碼
Selection.CopyPicture Appearance:=xlPrinter, Format:=xlPicture
ActiveSheet.Pictures.Paste.Select

給你的思路:
文本框的valid裡對輸入的值進行判斷,看該用上標還是下標:
如10的三次方是上標,
你輸入1000但在Valid裡將 '10 3'存入到EXCEL中,
並使用上帖子描述的宏代碼轉換3為上標,
然後用 "將文字copy成圖片和貼圖片的宏代碼" 將該10的三次方轉換成圖片存放到某圖片文件,
再將該圖片文件存入到一表的g類型的字段中

那報表中10的三次方就可以使用報表的ole物件來做了。

因為報表中的label無上下標的功能,除非用兩個label使用位置來做,但那樣就不要變化了,所以建議使用報表的ole物件。


另:
EXCEL中上下標設定有個小問題要注意
當你給'103'中的3設成上標時是沒有作用的,得在'10'與'3'之間加上一空格才能將3設成上標。

以上 供參考。

7 楼


yzzd2167老师:谢谢你!我再问一下负指数在EXCEL中的代码?

8 楼

你輸入1/1000但在Valid裡將 '10 -3'存入到EXCEL中


oE.ActiveCell..FORMULAR1C1 = '10 -3'
1. oE.ActiveCell.Characters(Start:=4, Length:=2).Font.Superscript = True


9 楼

之前有一段:
 Selection.NumberFormatLocal = "@"
不然,'10 -3'輸入後會默認為日期形態。


一切excel中的操作都可以利用錄制宏來查看操作代碼:
步驟如下:
打開excel-工具-巨集-錄制新巨集
在excel中進行相關操作
工具-巨集-停止錄制

10 楼


感谢yzzd2167老师的指教和帮助!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册