主题:上下标问题
cc1963
[专家分:0] 发布于 2008-08-11 19:11:00
请问各位老师:我想把表单中录入的数据存入表或导入EXCEL后,数字自动有上下标的表示?如:10的平方等等。谢谢各位!!
回复列表 (共10个回复)
沙发
cbl518 [专家分:57140] 发布于 2008-08-12 08:26:00
oE.ActiveCell.Characters(Start:=4, Length:=1).Font.Superscript = .T.
板凳
cc1963 [专家分:0] 发布于 2008-08-12 15:33:00
cbl518老师:谢谢你多次的帮助。首先祝你奥运快乐!关于上下标问题,我在VF代码里
试过了,也许我没理解“开始”、“长度”是怎样表示的,总出现“WITH/ENDWITH以外无效”的提示,由此请麻烦你给具体写一下该代码!
如:1、我在文本框里输入1000,在报表里或EXCEL里如何把它表示为10的三次方;
2、在文本框里输入H2O(水分子式),在报表里或EXCEL里如何把2表示为下标。特别在报表里我一直没解决该问题
3 楼
yzzd2167 [专家分:550] 发布于 2008-08-13 12:04:00
用VFP控制EXCEL
4 楼
yzzd2167 [专家分:550] 发布于 2008-08-13 12:13:00
用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 楼
cc1963 [专家分:0] 发布于 2008-08-14 09:57:00
yzzd2167老师:谢谢你!这个代码只能设置EXCEL中的固定值,因在文本框输入的值是随机变化的,所以我希望在输入值后自动生成上下标。另:能否在VF报表里也实现该功能?
6 楼
yzzd2167 [专家分:550] 发布于 2008-08-15 10:48:00
下面兩段是將文字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 楼
cc1963 [专家分:0] 发布于 2008-08-16 19:52:00
yzzd2167老师:谢谢你!我再问一下负指数在EXCEL中的代码?
8 楼
yzzd2167 [专家分:550] 发布于 2008-08-18 08:38:00
你輸入1/1000但在Valid裡將 '10 -3'存入到EXCEL中
oE.ActiveCell..FORMULAR1C1 = '10 -3'
1. oE.ActiveCell.Characters(Start:=4, Length:=2).Font.Superscript = True
9 楼
yzzd2167 [专家分:550] 发布于 2008-08-18 08:50:00
之前有一段:
Selection.NumberFormatLocal = "@"
不然,'10 -3'輸入後會默認為日期形態。
一切excel中的操作都可以利用錄制宏來查看操作代碼:
步驟如下:
打開excel-工具-巨集-錄制新巨集
在excel中進行相關操作
工具-巨集-停止錄制
10 楼
cc1963 [专家分:0] 发布于 2008-08-18 17:49:00
感谢yzzd2167老师的指教和帮助!!
我来回复