![](/img/trans.png)
[英]Copy All cells from A + AC in sheet1 to Sheet3 then delete row in Sheet1
[英]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.