用户登录
用户注册

分享至

wordvba复制格式

  • 作者: 我这么卑微
  • 来源: 51数据库
  • 2020-06-05

1. excel vba复制行,复制它的内容和格式

将复制这行拆分,复制后选择性粘贴:

Rows(x & ":" & n).EntireRow.Copy

Range("A1").PasteSpecial xlPasteValuesAndNumberFormats

如果是复制的单元格格式,再加上下面一句

Range("A1").PasteSpecial xlPasteFormats

另外,Rows本身就是整行引用,EntireRow在这里就是重复的,可取消,直接改为:

Rows(x & ":" & n).Copy

2. VBA如何把内容从当前word复制到另一个word文件中

'打开后焦点发生了转移,activedocument已经指向刚打开的文件了

'改为

Sub Macro1()

Dim myDoc

'On Error Resume Next

With ActiveDocument.Tables(1).Cell(Row:=1, Column:=3).Range

Set myDoc = Word.Application.Documents.Open("E:\1.docx")

.Delete

.InsertAfter Text:=myDoc.Tables(2).Cell(Row:=1, Column:=2)

End With

End Sub

'(

InsertAfter Text:=myDoc.Tables(2).Cell(Row:=1, Column:=2)这行代码中,你确定表2存在吗?我测试时只建一个表,所以改为Tables(1).

)

'也可以这样控制焦点

Sub Macro1()

Dim myDoc

'On Error Resume Next

Set myDoc = Word.Application.Documents.Open("E:\1.docx", , , , , , , , , , , vbHide)

With ActiveDocument.Tables(1).Cell(Row:=1, Column:=3).Range

.Delete

.InsertAfter Text:=myDoc.Tables(2).Cell(Row:=1, Column:=2)

End With

End Sub

3. VBA如何把内容从当前word复制到另一个word文件中

'打开后焦点发生了转移,activedocument已经指向刚打开的文件了'改为Sub Macro1()Dim myDoc'On Error Resume NextWith ActiveDocument.Tables(1).Cell(Row:=1, Column:=3).RangeSet myDoc = Word.Application.Documents.Open("E:\1.docx").Delete.InsertAfter Text:=myDoc.Tables(2).Cell(Row:=1, Column:=2)End WithEnd Sub'(InsertAfter Text:=myDoc.Tables(2).Cell(Row:=1, Column:=2)这行代码中,你确定表2存在吗?我测试时只建一个表,所以改为Tables(1).)'也可以这样控制焦点Sub Macro1()Dim myDoc'On Error Resume NextSet myDoc = Word.Application.Documents.Open("E:\1.docx", , , , , , , , , , , vbHide)With ActiveDocument.Tables(1).Cell(Row:=1, Column:=3).Range.Delete.InsertAfter Text:=myDoc.Tables(2).Cell(Row:=1, Column:=2)End WithEnd Sub。

4. vba 将 word 字符复制到excel 或txt

你的代码可以用的。

Sub test()

Dim i

Dim Wrd As Range

i = Selection.Font.ColorIndex

For Each Wrd In ActiveDocument.Words

If Wrd.Font.ColorIndex i Then Wrd.Copy

SaveAsTxtFile '调用SaveAsTxtFile

Next Wrd

End Sub

Sub SaveAsTxtFile()

Const 指定文件名 = "autosave01.txt"

Documents.Add Template:="Normal", NewTemplate:=False, DocumentType:=0

Selection.PasteSpecial Link:=False, DataType:=wdPasteText

ActiveDocument.SaveAs2 FileName:=指定文件名, FileFormat:=wdFormatText, Encoding:=936

ActiveDocument.Close

End Sub

5. vba复制文件

VBA本身的filecopy好象不能复制打开的文件;

方法1:用SAVEAS 另存为

ThisWorkbook.SaveAs "D:\log\" & Format(Date, "yyyyMMdd") & ".xls"

方法2:借用DOS的COPY命令

Shell "cmd /c copy """ & ThisWorkbook.FullName & """ D:\" & Format(Date, "yyyyMMdd") & ".xls"

6. WordVBA复制某一行,将这一行的内容作为文件名保存

试试下面的代码,在网上找的:

Sub Word文件改名()

Application.ScreenUpdating = False

Down = MsgBox("请保证每个Word文档的第三行没有空行" & vbCrLf &; "否则无法重命名,运行宏会出错" & vbCrLf & vbCrLf &; "也不能出现第三行相同相等字段内容" & vbCrLf &; "否则只能重命名到第一个打开的同名文档", vbQuestion + vbYesNo, "★☆ 重命名时请注意 (1) ☆★")

If Down = vbNo Then

Exit Sub

End If '选择“是”,执行下列操作

Dim MyPath As String, i As Integer, myDoc As Document

With Application.FileDialog(msoFileDialogFolderPicker)

.Title = "选择要处理目标文件夹" &; "——(给文档进行重命名)"

If .Show = -1 Then

MyPath = .SelectedItems(1)

Else

Exit Sub

End If

End With

With Application.FileSearch

.LookIn = MyPath

.FileType = msoFileTypeWordDocuments

If .Execute > 0 Then

For i = 1 To .FoundFiles.Count

Set myDoc = Documents.Open(FileName:=.FoundFiles(i))

' B可以替换的宏

' 以下是处理格式所录制的宏,可根据所需录制

Dim myS, myP As String

myP = ActiveDocument.Path

Selection.GoTo What:=wdGoToLine, Which:=wdGoToAbsolute, Count:=3 '修改数值可以以不同的行号命名

Selection.EndKey wdLine

Selection.HomeKey wdLine, wdExtend

myS = Selection.Range.Text

ActiveDocument.SaveAs FileName:=myP & "\" & myS & ".doc"

' 以上可以换成是你自己录制的宏

' C公共部分的代码

Application.DisplayAlerts = False '强制执行“是”

'ActiveDocument.Saved = True'强制执行“否”

ActiveDocument.Close '退出

Next

End If

End With

Application.ScreenUpdating = True

MsgBox "所选文件夹内的Word已经重命名完毕!!!" & vbCrLf & "" & vbCrLf &; "但不能对第二个同名文件进行重命名" & vbCrLf & "" & vbCrLf &; "修改日期为当前时间的即是重命名后的文档", 64, "☆★批量处理完毕★☆"

ThisDocument.Application.Quit

End Sub

转载请注明出处51数据库 » wordvba复制格式

软件
前端设计
程序设计
Java相关