Selection.Borders(wdBorderTop).LineStyle = wdLineStyleNone
查得wdBorderTop和wdLineStyleNone在VBA里的情况:
Const wdBorderTop = -1 (&HFFFFFFFF)
Const wdLineStyleNone = 0
写成pb的代码
constant int wdBorderTop = -1
constant long wdLineStyleNone = 0
ole_word.Selection.Borders(wdBorderTop).LineStyle = wdLineStyleNone
运行时报Selection.Borders(wdBorderTop).LineStyle = wdLineStyleNone这行有错误。
这段代码应该如何写?
10 个解决方案
#1
Pb中对Excel文件的应用
Oleobject ole_object//建立OLE对象
ole_object=create oleobject//创建对象
integer li_ret
li_ret=ole_object.connecttoobject("","Excel.Application")//建立连接
if li_ret<>0 then
//如果Excel还没有打开,则新建。
li_ret=ole_object.ConnectToNewObject("Excel.Application")
if li_ret<>0 then
messagebox("OLE错误","OLE无法连接!错误号:"+string(li_ret))
return
end if
ole_object.Visible=true
end if
pointer oldpointer//设置鼠标
oldpointer=setpointer(HourGlass!)
ole_object.Workbooks.Add//新建工作薄
ole_object.Application.DisplayAlerts=False//关闭警告消息对话框,防止提示
ole_object.Application.Workbooks.Open(as_excel_filename)//打开Excel文件
//ole_object.Application.ActiveWorkbook.SaveAs(as_text_filename,-4158)//把打开的Excel文件另存为
//Text文件,第二参数表示数据以制表符TAB分隔
ole_object.Application.Quit()//退出Excel
ole_object.activeworkbook.saved=true//放弃存盘
ole_object.workbooks.close//关闭工作簿
ole_object.Cells(1,1).Value=reptitle
ole_object.Range('A1').Select
ole_object.Selection.Font.Size=24
ole_object.selection.HorizontalAlignment=3//水平对齐方式:
ole_object.Range('A1:'+f_columname(ll_colnum)+'1').Select
ole_object.Range('A1:'+f_columname(ll_colnum)+'1').Merge
ole_object.Columns(i).ColumnWidth=ld_width
ole_object.Columns(i).HorizontalAlignment=3
ole_object.Columns(i).Borders.LineStyle=1
ole_object.Columns(i).Font.Bold=True
ole_object.cells(i,j).NumberFormat="@"
ole_object.cells(i,j).Font.Bold=false
ole_object.cells(i,j).value=ls_value
OLE_MyExcel.ActiveWorkbook.Activesheet.UsedRange.Rows.Count
Sheets.Add
基本操作:
Ole_object.Workbooks.add//新建一个Excel文件
Ole_object.Workbooks.Open("FileName")//打开一个已存在Excel文件
Ole_object.ActiveWorkBook.Sheets("SheetName").Select//选择文件中一个工作表
Ole_object.Application.Run("MacroName")//运行宏
Ole_object.Application.Visible=TRUE//Excel文件可见
Ole_object.Application.ScreenUpdating=true//设置可见属性
②格式设置
Ole_object.ActiveSheet.Columns("A:U").AutoFit//列宽自动调整
Ole_object.ActiveSheet.Columns("A:Z").ColumnWidth=6.75//列宽
Ole_object.ActiveSheet.Rows("1:100").RowHeight=12//行高
Ole_object.Application.StandardFont="ArialNarrow";//设置字体
Ole_object.Application.StandardFontSize="8"//设置字号
Ole_object.ActiveSheet.Font.Size="8"//设置字号
Ole_object.ActiveSheet.Font.Bold=True//粗体
Ole_object.ActiveSheet.Font.Italic=True//斜体
Ole_object.ActiveSheet.Font.Underline=True//下划线
Ole_object.ActiveSheet.Font.StrikeThrough=True//删除线
Ole_object.ActiveSheet.HorizontalAlignment=3//水平:4靠右;3居中;2靠左
Ole_object.ActiveSheet.VerticalAlignment=2//垂直:3靠下;2居中;1靠上
Ole_object.ActiveSheet.cells(2,1).font.name=’黑体’//设置字体
Ole_object.ActiveSheet.cells(2,1).font.size=25//设置字体大小
③工作区域操作:
Ole_object.ActiveSheet.Range("A1:Z10").Property=value//设置一个工作区域内的属性值
Ole_object.ActiveSheet.Range("A1:Z10").Merge//合并单元格
Ole_object.ActiveSheet.Range("A1:Z10").WrapText=False//自动换行禁止
Ole_object.ActiveSheet.Range("A1:Z10").Borders(b_type).Weight=i_val//b_type:1左边界;2右边界;3上边界;4下边界;5左上倾斜;6右上倾斜(以上为对单元格的操作)7左边界;8上边界;9下边界;10右边界;11内部垂直边界;12内部水平边界(以上为对区域的操作)//i_val:0无边界线;然后1,2,3。。。依次边界线加粗
Ole_object.ActiveSheet.Range("A1:Z10").Borders(b_type).linestyle=1//1与7—细实、2—细虚、4—点虚、9—双细实线
④赋值操作
Ole_object.ActiveSheet.range("A1:Z10").Cells.value=“姓名”
Ole_object.ActiveSheet.range("A1:Z10").Cells.value=1
Ole_object.ActiveSheet.range("A1:Z10").Cells.value=“2003-01-01”
Ole_object.ActiveSheet.Range("A1:Z10").Cells(1,2).value=“年龄”//区域内一个单元格的赋值
Ole_object.ActiveSheet.Range("A1:Z1").Cells(1,1).value=“SUM(RC[-9]:RC[-1])”
⑤打印属性设置
Ole_object.ActiveSheet.pagesetup.LeftHeader=""
Ole_object.ActiveSheet.pagesetup.CenterHeader=""//设置页眉
Ole_object.ActiveSheet.pagesetup.RightHeader=""//
Ole_object.ActiveSheet.pagesetup.LeftFooter=""
Ole_object.ActiveSheet.pagesetup.CenterFooter=""//设置页脚
Ole_object.ActiveSheet.pagesetup.RightFooter=""
Ole_object.ActiveSheet.pagesetup.LeftMargin=0//设置左边距
Ole_object.ActiveSheet.pagesetup.RightMargin=0//设置右边距
Ole_object.ActiveSheet.pagesetup.TopMargin=2/0.035//设置顶边距为2厘米
Ole_object.ActiveSheet.pagesetup.BottomMargin=0//设置底边距
Ole_object.ActiveSheet.pagesetup.HeaderMargin=2/0.035//设置页眉到顶端边距2厘米
Ole_object.ActiveSheet.pagesetup.FooterMargin=3/0.035//设置页脚到底边距为3厘米
Ole_object.ActiveSheet.pagesetup.PrintHeadings=False
Ole_object.ActiveSheet.pagesetup.PrintGridlines=False//设置打印单元格网线
Ole_object.ActiveSheet.pagesetup.PrintQuality=600
Ole_object.ActiveSheet.pagesetup.CenterHorizontally=True//设置页面水平居中
Ole_object.ActiveSheet.pagesetup.CenterVertically=True//设置页面垂直居中
Ole_object.ActiveSheet.pagesetup.Orientation=2//打印方向1垂直;2水平
Ole_object.ActiveSheet.pagesetup.Draft=False
Ole_object.ActiveSheet.pagesetup.PaperSize=9//8-A3;9-A4//设置纸张大小
Ole_object.ActiveSheet.pagesetup.Order=1//打印次序:1先上下再左右2先左右再上下
Ole_object.ActiveSheet.pagesetup.FitToPagesWide=1//缩放在一页中:0否;1是
Ole_object.ActiveSheet.usedrange.copy//拷贝整个工作表
Ole_object.ActiveSheet.cells(1,4).clearcontents//清除单元格公式
Ole_object.ActiveSheet.printpreview//打印预览工作表
Ole_object.ActiveSheet.printout//打印输出工作表
Ole_object.ActiveSheet..range(“a1:e3”).copy//拷贝指定区域
Ole_object.worksheet(“sheet2”).range(“a1”).pastespecial//粘贴
Ole_object.ActiveSheet.rows(2).insert//在第2行之前插入一列
Ole_object.ActiveSheet.colunms(2).insert//在第2列之前插入一列
ole_object.Application.DisplayAlerts=False
ole_object.activeworkbook.sheets.Add//新增工作表
ole_object.worksheets("sheet3").activate//设活动工作表
ole_object.worksheets("sheet1").delete//删除指定工作表
ole_object.caption=""//修改标题
ole_object.visible=true//显示Excel窗口
ole_object.activeworkbook.saveas('C:\adm.xls')
ole_object.activesheet.columns(1).columnwidth=5//设置指定列的宽度(单位:字符个数)
ole_object.activesheet.rows(1).rowheight=1/0.035//设置指定行的高度(单位:磅,设定行高为1厘米,1磅=0.035厘米)
ole_object.worksheets(‘sheel1’).rows(18).pagebreak=1//在每18行之前插入分页符ole_object.activesheet.columns(4).pagebreak=0//在第4列之前删除分页符
ole_object.cells(1,1).value=1//给单元格赋值
ole_object.cells(2,1).value=2
ole_object.cells(4,5).value='=sum(a1,a2)'
ole_object.Range('a1:z6555').locked=false//单元格保护锁定
ole_object.Range('a1:z6555').FormulaHidden=true//单元格公式隐藏
ole_object.Application.ActiveSheet.Protect('12345',true,true,true)//对活动单元格进行保护
ole_object.Application.Activeworkbook.Protect('12345',true,true)//对活动工作簿进行保护
ole_object.Application.ActiveSheet.unProtect('12345')//取消对活动单元格进行保护
ole_object.Range('A1:c1').Select//选取范围
ole_object.Range('A1:d4').Merge//合并单元格
ole_object.Selection.Font.Size=24
ole_object.Columns(1).Font.Bold=True
ole_object.selection.HorizontalAlignment=3//水平
ole_object.Columns(1).ColumnWidth=10//设置列宽
ole_object.Range('a1:d4').borders().weight=4//设置边框线宽
ole_object.Range('a1:d4').borders().linestyle=1//设置边框样式
ole_object.ActiveSheet.name="xzm"
ole_object.workSheet('sheet2').name="xzm"//修改当前工作表名称
ole_object.activeworkbook.ActiveSheet.name="xzm"
//ole_object.Application.Quit()
ole_object.disconnectobject()//取消连接
destroyole_object//删除对象
Oleobject ole_object//建立OLE对象
ole_object=create oleobject//创建对象
integer li_ret
li_ret=ole_object.connecttoobject("","Excel.Application")//建立连接
if li_ret<>0 then
//如果Excel还没有打开,则新建。
li_ret=ole_object.ConnectToNewObject("Excel.Application")
if li_ret<>0 then
messagebox("OLE错误","OLE无法连接!错误号:"+string(li_ret))
return
end if
ole_object.Visible=true
end if
pointer oldpointer//设置鼠标
oldpointer=setpointer(HourGlass!)
ole_object.Workbooks.Add//新建工作薄
ole_object.Application.DisplayAlerts=False//关闭警告消息对话框,防止提示
ole_object.Application.Workbooks.Open(as_excel_filename)//打开Excel文件
//ole_object.Application.ActiveWorkbook.SaveAs(as_text_filename,-4158)//把打开的Excel文件另存为
//Text文件,第二参数表示数据以制表符TAB分隔
ole_object.Application.Quit()//退出Excel
ole_object.activeworkbook.saved=true//放弃存盘
ole_object.workbooks.close//关闭工作簿
ole_object.Cells(1,1).Value=reptitle
ole_object.Range('A1').Select
ole_object.Selection.Font.Size=24
ole_object.selection.HorizontalAlignment=3//水平对齐方式:
ole_object.Range('A1:'+f_columname(ll_colnum)+'1').Select
ole_object.Range('A1:'+f_columname(ll_colnum)+'1').Merge
ole_object.Columns(i).ColumnWidth=ld_width
ole_object.Columns(i).HorizontalAlignment=3
ole_object.Columns(i).Borders.LineStyle=1
ole_object.Columns(i).Font.Bold=True
ole_object.cells(i,j).NumberFormat="@"
ole_object.cells(i,j).Font.Bold=false
ole_object.cells(i,j).value=ls_value
OLE_MyExcel.ActiveWorkbook.Activesheet.UsedRange.Rows.Count
Sheets.Add
基本操作:
Ole_object.Workbooks.add//新建一个Excel文件
Ole_object.Workbooks.Open("FileName")//打开一个已存在Excel文件
Ole_object.ActiveWorkBook.Sheets("SheetName").Select//选择文件中一个工作表
Ole_object.Application.Run("MacroName")//运行宏
Ole_object.Application.Visible=TRUE//Excel文件可见
Ole_object.Application.ScreenUpdating=true//设置可见属性
②格式设置
Ole_object.ActiveSheet.Columns("A:U").AutoFit//列宽自动调整
Ole_object.ActiveSheet.Columns("A:Z").ColumnWidth=6.75//列宽
Ole_object.ActiveSheet.Rows("1:100").RowHeight=12//行高
Ole_object.Application.StandardFont="ArialNarrow";//设置字体
Ole_object.Application.StandardFontSize="8"//设置字号
Ole_object.ActiveSheet.Font.Size="8"//设置字号
Ole_object.ActiveSheet.Font.Bold=True//粗体
Ole_object.ActiveSheet.Font.Italic=True//斜体
Ole_object.ActiveSheet.Font.Underline=True//下划线
Ole_object.ActiveSheet.Font.StrikeThrough=True//删除线
Ole_object.ActiveSheet.HorizontalAlignment=3//水平:4靠右;3居中;2靠左
Ole_object.ActiveSheet.VerticalAlignment=2//垂直:3靠下;2居中;1靠上
Ole_object.ActiveSheet.cells(2,1).font.name=’黑体’//设置字体
Ole_object.ActiveSheet.cells(2,1).font.size=25//设置字体大小
③工作区域操作:
Ole_object.ActiveSheet.Range("A1:Z10").Property=value//设置一个工作区域内的属性值
Ole_object.ActiveSheet.Range("A1:Z10").Merge//合并单元格
Ole_object.ActiveSheet.Range("A1:Z10").WrapText=False//自动换行禁止
Ole_object.ActiveSheet.Range("A1:Z10").Borders(b_type).Weight=i_val//b_type:1左边界;2右边界;3上边界;4下边界;5左上倾斜;6右上倾斜(以上为对单元格的操作)7左边界;8上边界;9下边界;10右边界;11内部垂直边界;12内部水平边界(以上为对区域的操作)//i_val:0无边界线;然后1,2,3。。。依次边界线加粗
Ole_object.ActiveSheet.Range("A1:Z10").Borders(b_type).linestyle=1//1与7—细实、2—细虚、4—点虚、9—双细实线
④赋值操作
Ole_object.ActiveSheet.range("A1:Z10").Cells.value=“姓名”
Ole_object.ActiveSheet.range("A1:Z10").Cells.value=1
Ole_object.ActiveSheet.range("A1:Z10").Cells.value=“2003-01-01”
Ole_object.ActiveSheet.Range("A1:Z10").Cells(1,2).value=“年龄”//区域内一个单元格的赋值
Ole_object.ActiveSheet.Range("A1:Z1").Cells(1,1).value=“SUM(RC[-9]:RC[-1])”
⑤打印属性设置
Ole_object.ActiveSheet.pagesetup.LeftHeader=""
Ole_object.ActiveSheet.pagesetup.CenterHeader=""//设置页眉
Ole_object.ActiveSheet.pagesetup.RightHeader=""//
Ole_object.ActiveSheet.pagesetup.LeftFooter=""
Ole_object.ActiveSheet.pagesetup.CenterFooter=""//设置页脚
Ole_object.ActiveSheet.pagesetup.RightFooter=""
Ole_object.ActiveSheet.pagesetup.LeftMargin=0//设置左边距
Ole_object.ActiveSheet.pagesetup.RightMargin=0//设置右边距
Ole_object.ActiveSheet.pagesetup.TopMargin=2/0.035//设置顶边距为2厘米
Ole_object.ActiveSheet.pagesetup.BottomMargin=0//设置底边距
Ole_object.ActiveSheet.pagesetup.HeaderMargin=2/0.035//设置页眉到顶端边距2厘米
Ole_object.ActiveSheet.pagesetup.FooterMargin=3/0.035//设置页脚到底边距为3厘米
Ole_object.ActiveSheet.pagesetup.PrintHeadings=False
Ole_object.ActiveSheet.pagesetup.PrintGridlines=False//设置打印单元格网线
Ole_object.ActiveSheet.pagesetup.PrintQuality=600
Ole_object.ActiveSheet.pagesetup.CenterHorizontally=True//设置页面水平居中
Ole_object.ActiveSheet.pagesetup.CenterVertically=True//设置页面垂直居中
Ole_object.ActiveSheet.pagesetup.Orientation=2//打印方向1垂直;2水平
Ole_object.ActiveSheet.pagesetup.Draft=False
Ole_object.ActiveSheet.pagesetup.PaperSize=9//8-A3;9-A4//设置纸张大小
Ole_object.ActiveSheet.pagesetup.Order=1//打印次序:1先上下再左右2先左右再上下
Ole_object.ActiveSheet.pagesetup.FitToPagesWide=1//缩放在一页中:0否;1是
Ole_object.ActiveSheet.usedrange.copy//拷贝整个工作表
Ole_object.ActiveSheet.cells(1,4).clearcontents//清除单元格公式
Ole_object.ActiveSheet.printpreview//打印预览工作表
Ole_object.ActiveSheet.printout//打印输出工作表
Ole_object.ActiveSheet..range(“a1:e3”).copy//拷贝指定区域
Ole_object.worksheet(“sheet2”).range(“a1”).pastespecial//粘贴
Ole_object.ActiveSheet.rows(2).insert//在第2行之前插入一列
Ole_object.ActiveSheet.colunms(2).insert//在第2列之前插入一列
ole_object.Application.DisplayAlerts=False
ole_object.activeworkbook.sheets.Add//新增工作表
ole_object.worksheets("sheet3").activate//设活动工作表
ole_object.worksheets("sheet1").delete//删除指定工作表
ole_object.caption=""//修改标题
ole_object.visible=true//显示Excel窗口
ole_object.activeworkbook.saveas('C:\adm.xls')
ole_object.activesheet.columns(1).columnwidth=5//设置指定列的宽度(单位:字符个数)
ole_object.activesheet.rows(1).rowheight=1/0.035//设置指定行的高度(单位:磅,设定行高为1厘米,1磅=0.035厘米)
ole_object.worksheets(‘sheel1’).rows(18).pagebreak=1//在每18行之前插入分页符ole_object.activesheet.columns(4).pagebreak=0//在第4列之前删除分页符
ole_object.cells(1,1).value=1//给单元格赋值
ole_object.cells(2,1).value=2
ole_object.cells(4,5).value='=sum(a1,a2)'
ole_object.Range('a1:z6555').locked=false//单元格保护锁定
ole_object.Range('a1:z6555').FormulaHidden=true//单元格公式隐藏
ole_object.Application.ActiveSheet.Protect('12345',true,true,true)//对活动单元格进行保护
ole_object.Application.Activeworkbook.Protect('12345',true,true)//对活动工作簿进行保护
ole_object.Application.ActiveSheet.unProtect('12345')//取消对活动单元格进行保护
ole_object.Range('A1:c1').Select//选取范围
ole_object.Range('A1:d4').Merge//合并单元格
ole_object.Selection.Font.Size=24
ole_object.Columns(1).Font.Bold=True
ole_object.selection.HorizontalAlignment=3//水平
ole_object.Columns(1).ColumnWidth=10//设置列宽
ole_object.Range('a1:d4').borders().weight=4//设置边框线宽
ole_object.Range('a1:d4').borders().linestyle=1//设置边框样式
ole_object.ActiveSheet.name="xzm"
ole_object.workSheet('sheet2').name="xzm"//修改当前工作表名称
ole_object.activeworkbook.ActiveSheet.name="xzm"
//ole_object.Application.Quit()
ole_object.disconnectobject()//取消连接
destroyole_object//删除对象
#2
好,学习
#3
一般数组的下界都是>0的数字,而你的这句
constant int wdBorderTop = -1
定义了-1,应该是数组越界访问错误,你检查一下是否真的是-1吧
constant int wdBorderTop = -1
定义了-1,应该是数组越界访问错误,你检查一下是否真的是-1吧
#4
在word的VBA里查帮助,常量被定义成这样:
Const wdBorderTop = -1 (&HFFFFFFFF)
这在PB里应该定义成什么值?
Const wdBorderTop = -1 (&HFFFFFFFF)
这在PB里应该定义成什么值?
#5
错误信息是什么?
#6
错误提示:
PowerBuilder Application Executeion Error (R0035)
Application Terminatied
Error:Error calling external object function borders at line 124 in clicked event of object st_word of w_expht
---------
第124行的代码正是ole_word.Selection.Borders(wdBorderTop).LineStyle = wdLineStyleNone
我估计是wdBorderTop的值不对,所以取不出相关对象。就是不知VBA中的Const wdBorderTop = -1 (&HFFFFFFFF)在PB里该怎样定义。
PowerBuilder Application Executeion Error (R0035)
Application Terminatied
Error:Error calling external object function borders at line 124 in clicked event of object st_word of w_expht
---------
第124行的代码正是ole_word.Selection.Borders(wdBorderTop).LineStyle = wdLineStyleNone
我估计是wdBorderTop的值不对,所以取不出相关对象。就是不知VBA中的Const wdBorderTop = -1 (&HFFFFFFFF)在PB里该怎样定义。
#7
ole_object.Selection.Tables.Item(1).Borders.Item(1).LineStyle = 0
#8
top=1
类推
类推
#9
不需要定义,直接在脚本里写上相应的数值即可,即:
ole_word.Selection.Borders(-1).LineStyle = 0
或者
ole_word.Selection.Borders[-1].LineStyle = 0
ole_word.Selection.Borders(-1).LineStyle = 0
或者
ole_word.Selection.Borders[-1].LineStyle = 0
#10
搞定
改成ole_word.Selection.Borders[wdBorderTop].LineStyle = wdLineStyleNone
就OK了.也就是把半括号改成方括号
改成ole_word.Selection.Borders[wdBorderTop].LineStyle = wdLineStyleNone
就OK了.也就是把半括号改成方括号
#1
Pb中对Excel文件的应用
Oleobject ole_object//建立OLE对象
ole_object=create oleobject//创建对象
integer li_ret
li_ret=ole_object.connecttoobject("","Excel.Application")//建立连接
if li_ret<>0 then
//如果Excel还没有打开,则新建。
li_ret=ole_object.ConnectToNewObject("Excel.Application")
if li_ret<>0 then
messagebox("OLE错误","OLE无法连接!错误号:"+string(li_ret))
return
end if
ole_object.Visible=true
end if
pointer oldpointer//设置鼠标
oldpointer=setpointer(HourGlass!)
ole_object.Workbooks.Add//新建工作薄
ole_object.Application.DisplayAlerts=False//关闭警告消息对话框,防止提示
ole_object.Application.Workbooks.Open(as_excel_filename)//打开Excel文件
//ole_object.Application.ActiveWorkbook.SaveAs(as_text_filename,-4158)//把打开的Excel文件另存为
//Text文件,第二参数表示数据以制表符TAB分隔
ole_object.Application.Quit()//退出Excel
ole_object.activeworkbook.saved=true//放弃存盘
ole_object.workbooks.close//关闭工作簿
ole_object.Cells(1,1).Value=reptitle
ole_object.Range('A1').Select
ole_object.Selection.Font.Size=24
ole_object.selection.HorizontalAlignment=3//水平对齐方式:
ole_object.Range('A1:'+f_columname(ll_colnum)+'1').Select
ole_object.Range('A1:'+f_columname(ll_colnum)+'1').Merge
ole_object.Columns(i).ColumnWidth=ld_width
ole_object.Columns(i).HorizontalAlignment=3
ole_object.Columns(i).Borders.LineStyle=1
ole_object.Columns(i).Font.Bold=True
ole_object.cells(i,j).NumberFormat="@"
ole_object.cells(i,j).Font.Bold=false
ole_object.cells(i,j).value=ls_value
OLE_MyExcel.ActiveWorkbook.Activesheet.UsedRange.Rows.Count
Sheets.Add
基本操作:
Ole_object.Workbooks.add//新建一个Excel文件
Ole_object.Workbooks.Open("FileName")//打开一个已存在Excel文件
Ole_object.ActiveWorkBook.Sheets("SheetName").Select//选择文件中一个工作表
Ole_object.Application.Run("MacroName")//运行宏
Ole_object.Application.Visible=TRUE//Excel文件可见
Ole_object.Application.ScreenUpdating=true//设置可见属性
②格式设置
Ole_object.ActiveSheet.Columns("A:U").AutoFit//列宽自动调整
Ole_object.ActiveSheet.Columns("A:Z").ColumnWidth=6.75//列宽
Ole_object.ActiveSheet.Rows("1:100").RowHeight=12//行高
Ole_object.Application.StandardFont="ArialNarrow";//设置字体
Ole_object.Application.StandardFontSize="8"//设置字号
Ole_object.ActiveSheet.Font.Size="8"//设置字号
Ole_object.ActiveSheet.Font.Bold=True//粗体
Ole_object.ActiveSheet.Font.Italic=True//斜体
Ole_object.ActiveSheet.Font.Underline=True//下划线
Ole_object.ActiveSheet.Font.StrikeThrough=True//删除线
Ole_object.ActiveSheet.HorizontalAlignment=3//水平:4靠右;3居中;2靠左
Ole_object.ActiveSheet.VerticalAlignment=2//垂直:3靠下;2居中;1靠上
Ole_object.ActiveSheet.cells(2,1).font.name=’黑体’//设置字体
Ole_object.ActiveSheet.cells(2,1).font.size=25//设置字体大小
③工作区域操作:
Ole_object.ActiveSheet.Range("A1:Z10").Property=value//设置一个工作区域内的属性值
Ole_object.ActiveSheet.Range("A1:Z10").Merge//合并单元格
Ole_object.ActiveSheet.Range("A1:Z10").WrapText=False//自动换行禁止
Ole_object.ActiveSheet.Range("A1:Z10").Borders(b_type).Weight=i_val//b_type:1左边界;2右边界;3上边界;4下边界;5左上倾斜;6右上倾斜(以上为对单元格的操作)7左边界;8上边界;9下边界;10右边界;11内部垂直边界;12内部水平边界(以上为对区域的操作)//i_val:0无边界线;然后1,2,3。。。依次边界线加粗
Ole_object.ActiveSheet.Range("A1:Z10").Borders(b_type).linestyle=1//1与7—细实、2—细虚、4—点虚、9—双细实线
④赋值操作
Ole_object.ActiveSheet.range("A1:Z10").Cells.value=“姓名”
Ole_object.ActiveSheet.range("A1:Z10").Cells.value=1
Ole_object.ActiveSheet.range("A1:Z10").Cells.value=“2003-01-01”
Ole_object.ActiveSheet.Range("A1:Z10").Cells(1,2).value=“年龄”//区域内一个单元格的赋值
Ole_object.ActiveSheet.Range("A1:Z1").Cells(1,1).value=“SUM(RC[-9]:RC[-1])”
⑤打印属性设置
Ole_object.ActiveSheet.pagesetup.LeftHeader=""
Ole_object.ActiveSheet.pagesetup.CenterHeader=""//设置页眉
Ole_object.ActiveSheet.pagesetup.RightHeader=""//
Ole_object.ActiveSheet.pagesetup.LeftFooter=""
Ole_object.ActiveSheet.pagesetup.CenterFooter=""//设置页脚
Ole_object.ActiveSheet.pagesetup.RightFooter=""
Ole_object.ActiveSheet.pagesetup.LeftMargin=0//设置左边距
Ole_object.ActiveSheet.pagesetup.RightMargin=0//设置右边距
Ole_object.ActiveSheet.pagesetup.TopMargin=2/0.035//设置顶边距为2厘米
Ole_object.ActiveSheet.pagesetup.BottomMargin=0//设置底边距
Ole_object.ActiveSheet.pagesetup.HeaderMargin=2/0.035//设置页眉到顶端边距2厘米
Ole_object.ActiveSheet.pagesetup.FooterMargin=3/0.035//设置页脚到底边距为3厘米
Ole_object.ActiveSheet.pagesetup.PrintHeadings=False
Ole_object.ActiveSheet.pagesetup.PrintGridlines=False//设置打印单元格网线
Ole_object.ActiveSheet.pagesetup.PrintQuality=600
Ole_object.ActiveSheet.pagesetup.CenterHorizontally=True//设置页面水平居中
Ole_object.ActiveSheet.pagesetup.CenterVertically=True//设置页面垂直居中
Ole_object.ActiveSheet.pagesetup.Orientation=2//打印方向1垂直;2水平
Ole_object.ActiveSheet.pagesetup.Draft=False
Ole_object.ActiveSheet.pagesetup.PaperSize=9//8-A3;9-A4//设置纸张大小
Ole_object.ActiveSheet.pagesetup.Order=1//打印次序:1先上下再左右2先左右再上下
Ole_object.ActiveSheet.pagesetup.FitToPagesWide=1//缩放在一页中:0否;1是
Ole_object.ActiveSheet.usedrange.copy//拷贝整个工作表
Ole_object.ActiveSheet.cells(1,4).clearcontents//清除单元格公式
Ole_object.ActiveSheet.printpreview//打印预览工作表
Ole_object.ActiveSheet.printout//打印输出工作表
Ole_object.ActiveSheet..range(“a1:e3”).copy//拷贝指定区域
Ole_object.worksheet(“sheet2”).range(“a1”).pastespecial//粘贴
Ole_object.ActiveSheet.rows(2).insert//在第2行之前插入一列
Ole_object.ActiveSheet.colunms(2).insert//在第2列之前插入一列
ole_object.Application.DisplayAlerts=False
ole_object.activeworkbook.sheets.Add//新增工作表
ole_object.worksheets("sheet3").activate//设活动工作表
ole_object.worksheets("sheet1").delete//删除指定工作表
ole_object.caption=""//修改标题
ole_object.visible=true//显示Excel窗口
ole_object.activeworkbook.saveas('C:\adm.xls')
ole_object.activesheet.columns(1).columnwidth=5//设置指定列的宽度(单位:字符个数)
ole_object.activesheet.rows(1).rowheight=1/0.035//设置指定行的高度(单位:磅,设定行高为1厘米,1磅=0.035厘米)
ole_object.worksheets(‘sheel1’).rows(18).pagebreak=1//在每18行之前插入分页符ole_object.activesheet.columns(4).pagebreak=0//在第4列之前删除分页符
ole_object.cells(1,1).value=1//给单元格赋值
ole_object.cells(2,1).value=2
ole_object.cells(4,5).value='=sum(a1,a2)'
ole_object.Range('a1:z6555').locked=false//单元格保护锁定
ole_object.Range('a1:z6555').FormulaHidden=true//单元格公式隐藏
ole_object.Application.ActiveSheet.Protect('12345',true,true,true)//对活动单元格进行保护
ole_object.Application.Activeworkbook.Protect('12345',true,true)//对活动工作簿进行保护
ole_object.Application.ActiveSheet.unProtect('12345')//取消对活动单元格进行保护
ole_object.Range('A1:c1').Select//选取范围
ole_object.Range('A1:d4').Merge//合并单元格
ole_object.Selection.Font.Size=24
ole_object.Columns(1).Font.Bold=True
ole_object.selection.HorizontalAlignment=3//水平
ole_object.Columns(1).ColumnWidth=10//设置列宽
ole_object.Range('a1:d4').borders().weight=4//设置边框线宽
ole_object.Range('a1:d4').borders().linestyle=1//设置边框样式
ole_object.ActiveSheet.name="xzm"
ole_object.workSheet('sheet2').name="xzm"//修改当前工作表名称
ole_object.activeworkbook.ActiveSheet.name="xzm"
//ole_object.Application.Quit()
ole_object.disconnectobject()//取消连接
destroyole_object//删除对象
Oleobject ole_object//建立OLE对象
ole_object=create oleobject//创建对象
integer li_ret
li_ret=ole_object.connecttoobject("","Excel.Application")//建立连接
if li_ret<>0 then
//如果Excel还没有打开,则新建。
li_ret=ole_object.ConnectToNewObject("Excel.Application")
if li_ret<>0 then
messagebox("OLE错误","OLE无法连接!错误号:"+string(li_ret))
return
end if
ole_object.Visible=true
end if
pointer oldpointer//设置鼠标
oldpointer=setpointer(HourGlass!)
ole_object.Workbooks.Add//新建工作薄
ole_object.Application.DisplayAlerts=False//关闭警告消息对话框,防止提示
ole_object.Application.Workbooks.Open(as_excel_filename)//打开Excel文件
//ole_object.Application.ActiveWorkbook.SaveAs(as_text_filename,-4158)//把打开的Excel文件另存为
//Text文件,第二参数表示数据以制表符TAB分隔
ole_object.Application.Quit()//退出Excel
ole_object.activeworkbook.saved=true//放弃存盘
ole_object.workbooks.close//关闭工作簿
ole_object.Cells(1,1).Value=reptitle
ole_object.Range('A1').Select
ole_object.Selection.Font.Size=24
ole_object.selection.HorizontalAlignment=3//水平对齐方式:
ole_object.Range('A1:'+f_columname(ll_colnum)+'1').Select
ole_object.Range('A1:'+f_columname(ll_colnum)+'1').Merge
ole_object.Columns(i).ColumnWidth=ld_width
ole_object.Columns(i).HorizontalAlignment=3
ole_object.Columns(i).Borders.LineStyle=1
ole_object.Columns(i).Font.Bold=True
ole_object.cells(i,j).NumberFormat="@"
ole_object.cells(i,j).Font.Bold=false
ole_object.cells(i,j).value=ls_value
OLE_MyExcel.ActiveWorkbook.Activesheet.UsedRange.Rows.Count
Sheets.Add
基本操作:
Ole_object.Workbooks.add//新建一个Excel文件
Ole_object.Workbooks.Open("FileName")//打开一个已存在Excel文件
Ole_object.ActiveWorkBook.Sheets("SheetName").Select//选择文件中一个工作表
Ole_object.Application.Run("MacroName")//运行宏
Ole_object.Application.Visible=TRUE//Excel文件可见
Ole_object.Application.ScreenUpdating=true//设置可见属性
②格式设置
Ole_object.ActiveSheet.Columns("A:U").AutoFit//列宽自动调整
Ole_object.ActiveSheet.Columns("A:Z").ColumnWidth=6.75//列宽
Ole_object.ActiveSheet.Rows("1:100").RowHeight=12//行高
Ole_object.Application.StandardFont="ArialNarrow";//设置字体
Ole_object.Application.StandardFontSize="8"//设置字号
Ole_object.ActiveSheet.Font.Size="8"//设置字号
Ole_object.ActiveSheet.Font.Bold=True//粗体
Ole_object.ActiveSheet.Font.Italic=True//斜体
Ole_object.ActiveSheet.Font.Underline=True//下划线
Ole_object.ActiveSheet.Font.StrikeThrough=True//删除线
Ole_object.ActiveSheet.HorizontalAlignment=3//水平:4靠右;3居中;2靠左
Ole_object.ActiveSheet.VerticalAlignment=2//垂直:3靠下;2居中;1靠上
Ole_object.ActiveSheet.cells(2,1).font.name=’黑体’//设置字体
Ole_object.ActiveSheet.cells(2,1).font.size=25//设置字体大小
③工作区域操作:
Ole_object.ActiveSheet.Range("A1:Z10").Property=value//设置一个工作区域内的属性值
Ole_object.ActiveSheet.Range("A1:Z10").Merge//合并单元格
Ole_object.ActiveSheet.Range("A1:Z10").WrapText=False//自动换行禁止
Ole_object.ActiveSheet.Range("A1:Z10").Borders(b_type).Weight=i_val//b_type:1左边界;2右边界;3上边界;4下边界;5左上倾斜;6右上倾斜(以上为对单元格的操作)7左边界;8上边界;9下边界;10右边界;11内部垂直边界;12内部水平边界(以上为对区域的操作)//i_val:0无边界线;然后1,2,3。。。依次边界线加粗
Ole_object.ActiveSheet.Range("A1:Z10").Borders(b_type).linestyle=1//1与7—细实、2—细虚、4—点虚、9—双细实线
④赋值操作
Ole_object.ActiveSheet.range("A1:Z10").Cells.value=“姓名”
Ole_object.ActiveSheet.range("A1:Z10").Cells.value=1
Ole_object.ActiveSheet.range("A1:Z10").Cells.value=“2003-01-01”
Ole_object.ActiveSheet.Range("A1:Z10").Cells(1,2).value=“年龄”//区域内一个单元格的赋值
Ole_object.ActiveSheet.Range("A1:Z1").Cells(1,1).value=“SUM(RC[-9]:RC[-1])”
⑤打印属性设置
Ole_object.ActiveSheet.pagesetup.LeftHeader=""
Ole_object.ActiveSheet.pagesetup.CenterHeader=""//设置页眉
Ole_object.ActiveSheet.pagesetup.RightHeader=""//
Ole_object.ActiveSheet.pagesetup.LeftFooter=""
Ole_object.ActiveSheet.pagesetup.CenterFooter=""//设置页脚
Ole_object.ActiveSheet.pagesetup.RightFooter=""
Ole_object.ActiveSheet.pagesetup.LeftMargin=0//设置左边距
Ole_object.ActiveSheet.pagesetup.RightMargin=0//设置右边距
Ole_object.ActiveSheet.pagesetup.TopMargin=2/0.035//设置顶边距为2厘米
Ole_object.ActiveSheet.pagesetup.BottomMargin=0//设置底边距
Ole_object.ActiveSheet.pagesetup.HeaderMargin=2/0.035//设置页眉到顶端边距2厘米
Ole_object.ActiveSheet.pagesetup.FooterMargin=3/0.035//设置页脚到底边距为3厘米
Ole_object.ActiveSheet.pagesetup.PrintHeadings=False
Ole_object.ActiveSheet.pagesetup.PrintGridlines=False//设置打印单元格网线
Ole_object.ActiveSheet.pagesetup.PrintQuality=600
Ole_object.ActiveSheet.pagesetup.CenterHorizontally=True//设置页面水平居中
Ole_object.ActiveSheet.pagesetup.CenterVertically=True//设置页面垂直居中
Ole_object.ActiveSheet.pagesetup.Orientation=2//打印方向1垂直;2水平
Ole_object.ActiveSheet.pagesetup.Draft=False
Ole_object.ActiveSheet.pagesetup.PaperSize=9//8-A3;9-A4//设置纸张大小
Ole_object.ActiveSheet.pagesetup.Order=1//打印次序:1先上下再左右2先左右再上下
Ole_object.ActiveSheet.pagesetup.FitToPagesWide=1//缩放在一页中:0否;1是
Ole_object.ActiveSheet.usedrange.copy//拷贝整个工作表
Ole_object.ActiveSheet.cells(1,4).clearcontents//清除单元格公式
Ole_object.ActiveSheet.printpreview//打印预览工作表
Ole_object.ActiveSheet.printout//打印输出工作表
Ole_object.ActiveSheet..range(“a1:e3”).copy//拷贝指定区域
Ole_object.worksheet(“sheet2”).range(“a1”).pastespecial//粘贴
Ole_object.ActiveSheet.rows(2).insert//在第2行之前插入一列
Ole_object.ActiveSheet.colunms(2).insert//在第2列之前插入一列
ole_object.Application.DisplayAlerts=False
ole_object.activeworkbook.sheets.Add//新增工作表
ole_object.worksheets("sheet3").activate//设活动工作表
ole_object.worksheets("sheet1").delete//删除指定工作表
ole_object.caption=""//修改标题
ole_object.visible=true//显示Excel窗口
ole_object.activeworkbook.saveas('C:\adm.xls')
ole_object.activesheet.columns(1).columnwidth=5//设置指定列的宽度(单位:字符个数)
ole_object.activesheet.rows(1).rowheight=1/0.035//设置指定行的高度(单位:磅,设定行高为1厘米,1磅=0.035厘米)
ole_object.worksheets(‘sheel1’).rows(18).pagebreak=1//在每18行之前插入分页符ole_object.activesheet.columns(4).pagebreak=0//在第4列之前删除分页符
ole_object.cells(1,1).value=1//给单元格赋值
ole_object.cells(2,1).value=2
ole_object.cells(4,5).value='=sum(a1,a2)'
ole_object.Range('a1:z6555').locked=false//单元格保护锁定
ole_object.Range('a1:z6555').FormulaHidden=true//单元格公式隐藏
ole_object.Application.ActiveSheet.Protect('12345',true,true,true)//对活动单元格进行保护
ole_object.Application.Activeworkbook.Protect('12345',true,true)//对活动工作簿进行保护
ole_object.Application.ActiveSheet.unProtect('12345')//取消对活动单元格进行保护
ole_object.Range('A1:c1').Select//选取范围
ole_object.Range('A1:d4').Merge//合并单元格
ole_object.Selection.Font.Size=24
ole_object.Columns(1).Font.Bold=True
ole_object.selection.HorizontalAlignment=3//水平
ole_object.Columns(1).ColumnWidth=10//设置列宽
ole_object.Range('a1:d4').borders().weight=4//设置边框线宽
ole_object.Range('a1:d4').borders().linestyle=1//设置边框样式
ole_object.ActiveSheet.name="xzm"
ole_object.workSheet('sheet2').name="xzm"//修改当前工作表名称
ole_object.activeworkbook.ActiveSheet.name="xzm"
//ole_object.Application.Quit()
ole_object.disconnectobject()//取消连接
destroyole_object//删除对象
#2
好,学习
#3
一般数组的下界都是>0的数字,而你的这句
constant int wdBorderTop = -1
定义了-1,应该是数组越界访问错误,你检查一下是否真的是-1吧
constant int wdBorderTop = -1
定义了-1,应该是数组越界访问错误,你检查一下是否真的是-1吧
#4
在word的VBA里查帮助,常量被定义成这样:
Const wdBorderTop = -1 (&HFFFFFFFF)
这在PB里应该定义成什么值?
Const wdBorderTop = -1 (&HFFFFFFFF)
这在PB里应该定义成什么值?
#5
错误信息是什么?
#6
错误提示:
PowerBuilder Application Executeion Error (R0035)
Application Terminatied
Error:Error calling external object function borders at line 124 in clicked event of object st_word of w_expht
---------
第124行的代码正是ole_word.Selection.Borders(wdBorderTop).LineStyle = wdLineStyleNone
我估计是wdBorderTop的值不对,所以取不出相关对象。就是不知VBA中的Const wdBorderTop = -1 (&HFFFFFFFF)在PB里该怎样定义。
PowerBuilder Application Executeion Error (R0035)
Application Terminatied
Error:Error calling external object function borders at line 124 in clicked event of object st_word of w_expht
---------
第124行的代码正是ole_word.Selection.Borders(wdBorderTop).LineStyle = wdLineStyleNone
我估计是wdBorderTop的值不对,所以取不出相关对象。就是不知VBA中的Const wdBorderTop = -1 (&HFFFFFFFF)在PB里该怎样定义。
#7
ole_object.Selection.Tables.Item(1).Borders.Item(1).LineStyle = 0
#8
top=1
类推
类推
#9
不需要定义,直接在脚本里写上相应的数值即可,即:
ole_word.Selection.Borders(-1).LineStyle = 0
或者
ole_word.Selection.Borders[-1].LineStyle = 0
ole_word.Selection.Borders(-1).LineStyle = 0
或者
ole_word.Selection.Borders[-1].LineStyle = 0
#10
搞定
改成ole_word.Selection.Borders[wdBorderTop].LineStyle = wdLineStyleNone
就OK了.也就是把半括号改成方括号
改成ole_word.Selection.Borders[wdBorderTop].LineStyle = wdLineStyleNone
就OK了.也就是把半括号改成方括号