繁体   English   中英

从Sheet3复制一行,粘贴到Sheet1,另存为文件,然后转到Sheet 3的下一行

[英]Copy a row from Sheet3, paste into Sheet1, save as file, then go to the next row of Sheet 3

我正在尝试找到一种简化重复性工作的方法。

这是我第一次尝试构建适当的宏,因此事情对我来说很混乱。

以下是尝试使其工作。

Sub test()
Dim r As Range, j As Integer
Set r = Range("A2:C500")
Do
 Sheets("Sheet1").Range(r.Offset(1, 0)).Select
 Selection.Copy
 Sheets("Sheet1").Select
Range("D2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("D2:F494")
Range("D2:F494").Select
ActiveWorkbook.SaveAs Filename = j, FileFormat:=xlUnicodeText, _
    CreateBackup:=False

If r.Offset(1, 0) = "" Then Exit Do
Loop
End Sub

我在尝试着
-从工作表3复制行A2:C2
-将其粘贴到工作表1的D2中
-将该值一直拖动到工作表1的末尾
-将工作表1保存为文本文件(任何文件名都可以。我试图另存为1、2、3,依此类推。)
-然后转到工作表3(A3:C3)的下一行,重复该过程,直到到达最后一行A500:C500。

当我只为第一行记录宏时,它看起来如下:

  Sheets("Sheet3").Select
Range("A2:C2").Select
Selection.Copy
Sheets("Sheet1").Select
Range("D2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("D2:F494")
Range("D2:F494").Select
ActiveWorkbook.SaveAs Filename:= _
    "D:\Users\XXX\Desktop\XXX. XX\1.txt", FileFormat:=xlUnicodeText, _
    CreateBackup:=False

任何帮助将不胜感激!

目前尚不清楚您想做什么。 听起来您是在说要从一个工作表复制一行(或行中的某些单元格)到另一工作表的特定单个单元格,然后将该工作表导出到文本文件。 这似乎很奇怪。 为什么不只是编写一个宏来获取所需的所有数据,然后直接将其直接写入文件呢? 您是否只希望将“ sheet3”的前三列的所有行中的所有数据导出到文件中? 还是您希望在这些文本文件的每个文件中的“ sheet1”其他部分中都有样板文件?

还是要创建500个文本文件,每个文本文件都来自sheet3?

您正在保存ActiveWorkbook因此不会将工作表另存为单个文件。 您需要使用Workbooks.Add为每组数据创建一个新工作Workbooks.Add ,然后在复制数据后保存并关闭这些新工作簿。

(工作表具有SaveAs方法,但不起作用-不会从工作簿中保存单个工作表。)

您可以使用Paste或PasteSpecial填充整个区域,而不必将其填满:

Worksheets("Sheet3").Range("A2:C2").Copy
Worksheets("Sheet1").Range("D2:F494").PasteSpecial xlValues
Application.CutCopyMode = False

恐怕录音机只会帮助您到达目标,您需要研究和修改其创建的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM