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复制格式