vba,word和excel相互调用
总是要有一个打开的时机的,总要有一段打开的代码,不然怎么凭空打开,怎么获取打开的文件名. 如果你想在你的宏运行前打开,你可以把调用与打开的代码放在宏运行的前面. 如:以excel打开word为例,你可以在Workbook_Open下放置你调用和打开word 的代码: Private Sub Workbook_Open() dim aaa as ...application End Sub 方法你应该比较熟悉了,就是在vbaproject下双击ThisWorkbook,然后在上边的下拉列表里选对象和事件.如果在宏中用路径打开被调用的文件,那么该文件就必须放在路径指定的位置,我不想这样。
我想放在任意位置。
放在任意位置你可以用一个打开对话框呀,如下面代码:Dim fd As FileDialog Dim Wbook As Workbook Dim rowindex As Integer Set fd = Application.FileDialog(msoFileDialogFilePicker) Dim vrtSelectedItem As Variant With fd .Filters.Add "EXCEL 文件", "*.xls", 1 '过滤 If .Show = -1 Then rowindex = 1 For Each vrtSelectedItem In .SelectedItems Set Wbook = Workbooks.Open(vrtSelectedItem)
如何在VBA中调用Excel工作表函数
工具:Microsoft Office Excel 2007 办公软件步骤:1、打开Microsoft Office Excel 2007 办公软件,击 “开始” ->“Excel 选项”。
2、选择“常规”选项卡,并在右侧点选“在功能区显示‘开发工具’选项卡”,并单击“确定"。
3、在单元格A1中输入“弧度”,单元格B1中输入“角度”,单元格A2中输入“3.14”,然后在单元格B2中输入公式"=DEGREES(A2)"在按下回车后,该单元格输出结果为179.9087477。
注:DEGREES函数的作用是将弧度转化为角度。
4、用VBA实现同样的功能。
点击“开发工具”选项卡,单击“Visual Basic”,启动Visual Basic编辑器。
5、在“Microsoft Excel 对象”上点鼠标右键,依次点击“插入” ->“模块”,创建“模块1”,并在该模块中输入内容:Sub 转换()MsgBox Application.WorksheetFunction.Degrees(3.14)End Sub点击“运行子过程/用户窗体”按钮,在弹出的对话框中选择“转换”,然后点击“运行”按钮。
6、程序弹出对话框,结果与在Excel中利用公式输出的结果一样,只是有效数字的位数不一样,这可以根据需要加以取舍。
怎样在VBA指令中调用Excel函数
软件版本:Office2013方法如下:1.利用VBA对C列数据求和:2.Alt+F11,输入代码如下:VBA中引用工作表函数,可以利用Application.worksheetFunction+函数名的方法3.F5执行代码,结果如下:
excel VBA用何种代码实现调用word中的内容?具体是如何打开word文...
只要定义一个Word.Application对象,Set WordApp = CreateObject("Word.Application")然后操作这个WordApp 对象就可以了,就像在Word中使用VBA一样,打开文件用 WordApp.Documents.Open 文件路径定位主要用 WordApp.Selection.Move系列指令,也可以用WordApp.Selection.Goto 具体的你可以用录制宏的方法在Word中看看用什么代码合适。
vba如何把word表格内容填到excel里
如果说填写,这个比较复杂,而且很难实现,因为word的VBA都是跟跟键盘操作,和界面操作有关的。
所以,如果可能,可以考虑用VBA来复制表格,然后粘贴到EXCEL中,对于比较简单的表格,内容是可以完全匹配的。
首先,你要知道如何用键盘来选择整个表格,然后复制,把这些操作录制下来,然后复制代码。
。
如果你是要从EXCEL 的VBA 入手,那么你需要在VBA引用中添加WORD Libary 11.0 如果是从WORD的VBA入手,那么就要添加EXCEL LIBARY 11.0 (OFFICE 2007 是 12.0)然后就是需要知道EXCEL中粘贴的代码,如果我记得不错的话,是:cells(1,1).paste这个,你也可以通过录制来得到。
如果你需要知道具体的操作方案,你当然也应该吧分数提高。
。
。
WORD中实现EXCEL中的引用问题
[问题一 如何重用某段原文]1、选中需要被重用的图文,选择“插入-书签”,为它取个名字,比如“出让方”;2、在需要重用的地方,键入Ctrl+F9插入域代码,录入:{ REF 出让方 };3、再键入F9,可以看到你原来设置的那段图文内容就出现在了这里。
4、以后一旦“出让方”那个地方的内容作了修改,需要对其它使用它的地方更新一下域。
简单点的话,可以选中整个文档然后键入F9。
[问题二 公式计算]这个一般来说只能在Word的表格里面实现,比如上面三行分别是你说的三个数字,然后选中第四行的单元格,选择菜单“表格-公式”,然后就可以象Excel里面一样指定计算公式什么的了。
同理,以后如果上面的数字变了,需要把汇总的这个域更新一下。
此外,楼主提到的希望通过宏来控制是什么意思?希望达到什么效果? ______补充:用VBA来控制域应该是可以的。
首先在文档中插入一个域代码:{ DOCVARIABLE MyVariable }然后在VBA中使用如下代码:ActiveDocument.Variables("MyVariable").Value = "Hello world!"ActiveDocument.Fields.Update
您好,我想问一下用EXCEL vba读取word表格中的表格数据怎么读取...
展开全部 使用VBA操作Word表格一、生成表格Private Sub CreateTable(mRows As Integer, mColumns) Dim mRange As RangeSet mRange = ActiveDocument.RangemRange.SetRange Start:=ActiveDocument.Range.End, End:=ActiveDocument.Range.EndSet SelfGenTable = ActiveDocument.Tables.Add(Range:=mRange, NumRows:=mRows, NumColumns:=mColumns) End Sub上面过程的作用是在活动文档的末尾插入一个mRows行,mColumns列的表格。
二、在读写表格中的单元格 写入单元格使用如下代码:TableObject.Cell(Row:=curRow, Column:=curColumn).Range.InsertAfter "文本" 上面代码的做用时在curRow行,curColumn列处插入字符“文本”。
其中TableObject为表格对象,如果使用了生成表格中的例子,那么可以用SelfGenTable来替代TableObject。
三、调整单元格对齐方式 水平对齐设置Selection.ParagraphFormat.Alignment=水平对齐常数(具体的常数可以查看帮助文件的说明) 如何选择单元格? 选定特定单元格TableObject.Cell(Row:=1,Column:=1).Select'选定单元格1,1 选定行TableObject.Rows(i).Select'选定第i行 选定列TableObject.Columns(i).Select'选定第i列 选定整个表格 TableObject.Select首先执行表格元素选择程序,然后再使用Selection.ParagraphFormat.Alignment设置对齐方式。
垂直对齐方式Selection.Cells.VerticalAlignment=垂直对齐常数也是首先选择表格元素,可以使单个单元格,单个行、单个列或者整个表格。
似乎也可以同时选择多个单元格、多个行、多个列,有兴趣的朋友可以自行寻找答案。
四、设置表格边线类型下面的代码对整个表格的所有边线设置成细实线: SelfGenTable.Select With Selection.Borders(wdBorderBottom).LineStyle = wdLineStyleSingle .Borders(wdBorderLeft).LineStyle = wdLineStyleSingle .Borders(wdBorderRight).LineStyle = wdLineStyleSingle .Borders(wdBorderTop).LineStyle = wdLineStyleSingle.Borders(wdBorderHorizontal).LineStyle = wdLineStyleSingleBorders(wdBorderVertical).LineStyle = wdLineStyleSingle End With同样是对Selection进行设置,所以可以依照上面的方法对特定的单元格、行或者列的边线样式进行分别设置,这里就不再列举了。
五、调整表格尺寸下面的代码对一个六列的表格设置宽度,宽度采用百分比宽度,从左至右的宽度百分比依次为:30,10,10,30,10,10: Dim WidthP(0 To 2) As Integer Dim j As Integer dim i as Integer WidthP(0) = 30 WidthP(1) = 10 WidthP(2) = 10 j = 0For i = 0 To SelfGenTable.Columns.Count - 1 If j > 2 Then j = 0 End IfSelfGenTable.Columns(i + 1).PreferredWidthType = wdPreferredWidthPercent SelfGenTable.Columns(i + 1).PreferredWidth = WidthP(j) j = j + 1 Next上面的代码通过Columns的PreferredWidthType属性设置表格列宽的形式,这里选择的是百分比列宽,可以根据自己的实际情况选择其他列宽形式,然后再设置相应的数值。
表格的行高请读者以此类推(实际上我还没设置过行高,都用自动生成的就够了) ===============================================编写操作表格的程序时需要注意,Word表格的行列起始值为1,而不是0。
===============================================下面是一个拆分字符串的代码,当插入表格的文本过长时,可以设定一个长度,超过这个长度就进行回车,这样保证在设定的单元格宽度内能够写下长文本。
单元格的高度会自动调整以使文本能完整的显示,这也就是我为什么没有通过代码设置单元格高度的原因。
Private Function FoldText(mLen As Integer, mStr As String) As String '折叠文字函数,mLen为折叠前的文字长度,mStr为文字的内容 Dim i As IntegerDim tmpStr(0 To 1) As String '临时字符串 If Len(mStr) > mLen ThenDo While Len(mStr) > mLen tmpStr(0) = Left(mStr, mLen)mStr = Right(mStr, Len(mStr) - mLen)tmpStr(1) = tmpStr(1) + tmpStr(0) + vbCrLf LooptmpStr(1) = tmpStr(1) + mStr ElsetmpStr(1) = mStr
VB 如何调用EXCEL VBA带参过程
Set xlsApp = Nothing /*----------有参调用模式-------------*/ xls文件中代码如下: Sub test2(str As String) MsgBox (str) End Sub VB代码如下: Dim xlsApp As Excel.Application Dim xlsBook As Excel.Workbook Dim xlsSheet As Excel.Worksheet Set xlsApp = New Excel.Application Set xlsBook = xlsApp.Workbooks.Open(App.Path + "\test.xls") Set xlsSheet = xlsBook.Worksheets(1) xlsApp.Visible = False Call xlsApp.Run("test2", "Hello!World!")
转载请注明出处51数据库 » word vba调用excel