ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: ★风花雪月

请教:VB与EXCEL联合开发

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-4-5 11:59 | 显示全部楼层
本帖已被收录到知识树中,索引项:其他专业开发
谢谢!

TA的精华主题

TA的得分主题

发表于 2005-4-5 14:18 | 显示全部楼层

我的一个里面的全部数据都要改,可是我写了下面的这个东西,

Sub vb() Dim i, j, k, l i = 0 j = 0 Dim ExcelID As Excel.Application Set ExcelID = New Excel.Application For i = 1 To 30 For j = 1 To 50 k = ExcelID.Cells(i, j).Value l = k * 0.58 ExcelID.Cells(i, j) = l Next Next End Sub

每次运行,都提示方法cells作用于对象applications时失败。

请问如何解决?

TA的精华主题

TA的得分主题

发表于 2005-4-7 15:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

14楼VBA工具-引用-勾上Microsoft Excel 9.0 Object Library

TA的精华主题

TA的得分主题

发表于 2005-4-7 15:54 | 显示全部楼层

感谢3楼的跟贴,但错误太多,有几百处,本人校对后重新贴出,望朋友们以后精益求精。

0)首先创建Excel对象,使用ComObj Dim xla as Excel.Application set xla = new Excel.Application 1)显示当前窗口: xla.Visible=True 2)更改Excel标题栏: xla.Caption="应用程序调用MicrosoftExcel" 3)添加新工作簿: xla.WorkBooks.Add 4)打开已存在的工作簿: xla.WorkBooks.Open("C:\Excel\Demo.xls") 5)设置第2个工作表为活动工作表: xla.WorkSheets(2).Activate 或xla.WorkSheets("Sheet2").Activate 6)给单元格赋值: xla.Cells(1,4).Value="第一行第四列" 7)设置指定列的宽度(单位:字符个数),以第一列为例: xla.ActiveSheet.Columns(1).ColumnsWidth=5 8)设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例 xla.ActiveSheet.Rows(2).RowHeight=1/0.035'1厘米 9)在第8行之前插入分页符: xla.WorkSheets(1).Rows(8).PageBreak=1 10)在第8列之前删除分页符: xla.ActiveSheet.Columns(4).PageBreak=0 11)指定边框线宽度: xla.ActiveSheet.Range("B3:D4").Borders(2).Weight=3 1-左2-右3-顶4-底5-斜(\)6-斜(/) 12)清除第一行第四列单元格公式: xla.ActiveSheet.Cells(1,4).ClearContents 13)设置第一行字体属性: xla.ActiveSheet.Rows(1).Font.Name="隶书" xla.ActiveSheet.Rows(1).Font.Color=clBlue xla.ActiveSheet.Rows(1).Font.Bold=True xla.ActiveSheet.Rows(1).Font.UnderLine=True 14)进行页面设置: xla.ActiveSheet.Pageset up.CenterHeader="报表演示"'页眉: xla.ActiveSheet.Pageset up.CenterFooter="第&P页" '页脚: xla.ActiveSheet.Pageset up.HeaderMargin=2/0.035 '页眉到顶端边距2cm xla.ActiveSheet.Pageset up.HeaderMargin=3/0.035 '页脚到底端边距3cm xla.ActiveSheet.Pageset up.TopMargin=2/0.035 '顶边距2cm: xla.ActiveSheet.Pageset up.BottomMargin=2/0.035 '底边距2cm: xla.ActiveSheet.Pageset up.LeftMargin=2/0.035 '左边距2cm: xla.ActiveSheet.Pageset up.RightMargin=2/0.035 '右边距2cm: xla.ActiveSheet.Pageset up.CenterHorizontally=2/0.035'页面水平居中: xla.ActiveSheet.Pageset up.CenterVertically=2/0.035'页面垂直居中: xla.ActiveSheet.Pageset up.PrintGridLines=True '打印单元格网线: 15)拷贝操作: a.拷贝整个工作表: xla.ActiveSheet.UsedRange.Copy b.拷贝指定区域: xlA.ActiveSheet.Range("A1:E2").Copy c.从A1位置开始粘贴: xlA.ActiveSheet.Range("A1").PasteSpecial d.从文件尾部开始粘贴: xla.ActiveSheet.Range.PasteSpecial 16)插入一行或一列: a.xla.ActiveSheet.Rows(2).Insert b.xla.ActiveSheet.Columns(1).Insert 17)删除一行或一列: a.xla.ActiveSheet.Rows(2).Delete b.xla.ActiveSheet.Columns(1).Delete 18)打印预览工作表: xla.ActiveSheet.PrintPreview 19)打印输出工作表: xla.ActiveSheet.PrintOut 20)工作表保存: If not xla.ActiveWorkBook.Savedthen xla.ActiveSheet.PrintPreview End if 21)工作表另存为: xla.SaveAs("C:\Excel\Demo1.xls") 22)放弃存盘: xla.ActiveWorkBook.Saved=True 23)关闭工作簿: xla.WorkBooks.Close 24)退出Excel: xla.Quit 25)设置工作表密码 xla.ActiveSheet.Protect"123",DrawingObjects=True,_ Contents=True,Scenarios=True 26)EXCEL的显示方式为最大化 xla.Application.WindowState=xlMaximized 27)工作薄显示方式为最大化 xla.ActiveWindow.WindowState=xlMaximized 28)设置打开默认工作薄数量 xla.SheetsInNewWorkbook=3 29)关闭时是否提示保存(true保存false不保存) xla.DisplayAlerts=False 30)设置拆分窗口,及固定行位置 xla.ActiveWindow.SplitRow=1 xla.ActiveWindow.FreezePanes=True 31)设置打印时固定打印内容 xla.ActiveSheet.Pageset up.PrintTitleRows="$1:$1" 32)设置打印标题 xla.ActiveSheet.Pageset up.PrintTitleColumns="" 33)设置显示方式(分页方式显示) xla.ActiveWindow.View=xlPageBreakPreview 34)设置显示比例 xla.ActiveWindow.Zoom=100 35)让Excel响应DDE请求 Ex.Application.IgnoreRemoteRequests=False 36)用VB操作EXCEL Private Sub Command3_Click() On Error GoTo err1 Dim I As Long Dim j As Long Dim xla As Excel.Application '声明对象变量 Me.MousePointer = 11 '改变鼠标样式 Set xla = New Excel.Application '初始化对象变量 xla.SheetsInNewWorkbook = 1 '将新建的工作薄数量设为1 xla.Workbooks.Add '增加一个工作薄 xla.Sheets(xla.Sheets.Count).Name = "book1" '修改工作薄名称 xla.Sheets.Add , xla.Sheets("book1") '增加第二个工作薄在第一个之后 xla.Sheets(xla.Sheets.Count).Name = "book2" xla.Sheets.Add , xla.Sheets("book2") '增加第三个工作薄在第二个之后 xla.Sheets(xla.Sheets.Count).Name = "book3" xla.Sheets("book1").Select '选中工作薄<book1> For I = 1 To 50 '循环写入数据 For j = 1 To 5 If I = 1 Then xla.Selection.NumberFormatLocal = "@" '设置格式为文本 xla.Cells(I, j) = "E" & I & j Else xla.Cells(I, j) = I & j End If Next Next xla.Rows("1:1").Select '选中第一行 xla.Selection.Font.Bold = True '设为粗体 xla.Selection.Font.Size = 24 '设置字体大小 xla.Cells.EntireColumn.AutoFit '自动调整列宽 xla.ActiveWindow.SplitRow = 1 '拆分第一行 xla.ActiveWindow.SplitColumn = 0 '拆分列 xla.ActiveWindow.FreezePanes = True '固定拆分 xla.ActiveSheet.Pagesetup.PrintTitleRows = "$1:$1" '设置打印固定行 xla.ActiveSheet.Pagesetup.PrintTitleColumns = "" '打印标题_ xla.ActiveSheet.Pagesetup.RightFooter = "打印时间:" & _ Format(Now, "yyyy年mm月dd日hh:MM:ss") xla.ActiveWindow.View = xlPageBreakPreview '设置显示方式 xla.ActiveWindow.Zoom = 100 '设置显示大小 '给工作表加密码 xla.ActiveSheet.Protect "123", DrawingObjects=True, _ Contents=True, Scenarios=True xla.Application.IgnoreRemoteRequests = False xla.Visible = True '使EXCEL可见 xla.Application.WindowState = xlMaximized 'EXCEL的显示方式为最大化 xla.ActiveWindow.WindowState = xlMaximized '工作薄显示方式为最大化 xla.SheetsInNewWorkbook = 3 '将默认新工作薄数量改为3个 Set xla = Nothing '清除对象 Me.MousePointer = 0 '修改鼠标 Exit Sub err1 xla.SheetsInNewWorkbook = 3 xla.DisplayAlerts = False '关闭时不提示保存 xla.Quit '关闭EXCEL xla.DisplayAlerts = True '关闭时提示保存 Set xla = Nothing Me.MousePointer = 0 End Sub

[此贴子已经被作者于2005-4-8 15:06:14编辑过]

TA的精华主题

TA的得分主题

发表于 2005-4-7 16:22 | 显示全部楼层
支持, 这样才有高手的风范! 不象一些高手不愿申出高贵的手!

TA的精华主题

TA的得分主题

发表于 2005-4-7 16:23 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2005-4-9 19:35 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
3楼-全面系统,好帖子!

TA的精华主题

TA的得分主题

发表于 2005-4-10 00:22 | 显示全部楼层
一、Excel对象模型

  为了在VB应用程序中调用Excel,必须要了解Excel对象模型。Excel对象模型描述了Excel的理论结构,所提供的对象很多,其中最重要的对象,即涉及VB调用Excel最可能用到的对象有:

  二、调用Excel

  在VB应用程序中调用Excel,实质是将Excel作为一个外部对象来引用,由Excel对象模型提供能从VB应用程序内部来程序化操纵的对象以及相关的属性、方法和事件。

详细的请下载附件:这是我在网上找的资料,拿出来大家共享

jI8IlAzV.rar (8.77 KB, 下载次数: 233)

TA的精华主题

TA的得分主题

发表于 2005-4-10 08:03 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2005-4-12 18:10 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-3-29 22:01 , Processed in 0.034647 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表