【发布时间】:2015-09-11 16:01:09
【问题描述】:
我需要复制一个 excel 的值并创建一个具有所需格式的新值。假设我需要将列从 B11 复制到 BG11,行将一直到最后。(我不知道如何找到行的结尾)。我在 b7 到 bg7 中有列标题。中间有不需要的行,我不需要它。所以在新的 excel 中,我希望列标题(从 b7 到 bg7)作为第一行,从 b11 到 bg11 的值直到最后。
这是我的第一个 excel 宏。我不知道该怎么做。因此,通过一些 stackoverflow 问题和其他站点的引用,我尝试了以下代码。但它没有提供所需的输出。
Sub newFormat()
Dim LastRow As Integer, i As Integer, erow As Integer
LastRow = ActiveSheet.Range(“B” & Rows.Count).End(xlUp).Row
For i = 2 To LastRow
Sheets("MySheetName").Range("B7:BG7").Copy
Sheets("MySheetName").Range("B11:BG11").Copy
Workbooks.Open Filename:=”C:\Users\abcd\Documents\Newformat.xlsx”
Worksheets(“Sheet1”).Select
erow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
ActiveSheet.Cells(erow, 1).Select
ActiveSheet.Paste
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.CutCopyMode = False
End If
Next i
End Sub
这可能很简单。任何帮助将不胜感激。
【问题讨论】:
-
我不确定您到底想做什么?
1为什么要循环打开文件?2为什么要在循环中一个接一个地复制两个范围?哪个是您要复制的?3嗯,你到底想做什么? -
@SiddharthRout:请忽略我的代码。它不工作。我刚刚尝试了一些东西。因为我对
macros没有任何想法,所以我不知道如何使用它。如果你没有得到我的问题(第 1 段),请告诉我。我会更新 -
我有一个不错的想法,但想在发布答案之前确定一下。那么新的标题和那一行
B11:BG11你想粘贴到Sheet1吗?如果是,那么一个快速的问题。新文件的 sheet1 中是否已有数据? -
否,新工作表中没有任何数据。它将第一行作为
B7:BG7作为标题,从第二行开始,它应该从B11:BG11获取值,直到可用行结束。 -
查看我发布的答案。这就是你想要达到的目标吗?