【问题标题】:Filldown columns from cells value in each worksheet从每个工作表中的单元格值填充列
【发布时间】:2019-04-18 17:57:09
【问题描述】:

我要做的是从特定单元格中获取值并将它们设为填充列。我有多个工作表,其中包含不同的值。

此代码在一个工作表上按预期工作:

Sub Formatting_one()

   Range("A12").Value = Range("M6").Value
   Range("A12:A" & Cells(Rows.Count, 7).End(xlUp).Row).FillDown

End Sub

然后,我开始尝试同样的事情,但在工作表中循环。这就是我坚持的观点。这是我的代码:

Sub Formatting_many()

    Dim ws As Worksheet

    For Each ws In ActiveWorkbook.Worksheets
        ws.[A1].Resize(, 6).EntireColumn.Insert

        ws.Range("A12").Value = ws.Range("M6").Value
        ws.Range("A12:A" & Cells(Rows.Count, 7).End(xlUp).Row).FillDown

        ws.Range("B12").Value = ws.Range("M7").Value
        ws.Range("B12:B" & Cells(Rows.Count, 7).End(xlUp).Row).FillDown

        ws.Range("C12").Value = ws.Range("M8").Value
        ws.Range("C12:C" & Cells(Rows.Count, 7).End(xlUp).Row).FillDown

        ws.Range("D12").Value = ws.Range("I5").Value
        ws.Range("D12:D" & Cells(Rows.Count, 7).End(xlUp).Row).FillDown

        ws.Range("E12").Value = ws.Range("I4").Value
        ws.Range("E12:E" & Cells(Rows.Count, 7).End(xlUp).Row).FillDown

        ws.Range("F12").Value = ws.Range("I6").Value
        ws.Range("F12:F" & Cells(Rows.Count, 7).End(xlUp).Row).FillDown

        ws.Range("G12").Value = ws.Range("I7").Value
        ws.Range("G12:G" & Cells(Rows.Count, 7).End(xlUp).Row).FillDown

    Next ws

End Sub

我一步一步做了,结果是该单元格被复制到填充范围单元格的第一个单元格中但随后被删除。有人可以帮忙吗?

【问题讨论】:

  • Cells(Rows.Count, 7).End(xlUp).Row 中,您需要指定工作表:ws.Cells(ws.Rows.Count, 7).End(xlUp).Row 另请注意,7 表示 G 列。检查这是否是查找最后使用的行的正确列。
  • 是的,我对此进行了测试,但我认为 Excel 理解 Range() 之间的引用,因为无论我是否输入工作表规范,它都不会改变任何内容。还是有同样的问题!行都是相等的,“7”是随机的,以防我在格式化工作表时删除东西:p

标签: excel vba copying


【解决方案1】:

问题……

... 是您在 G 列中查找最后使用的行

Cells(Rows.Count, 7).End(xlUp).Row

但是由于您添加了 6 列 ws.[A1].Resize(, 6).EntireColumn.Insert 列 G 现在是空的,所以最后使用的行是 1

你真的跑了

ws.Range("A12:A1").FillDown

它从 A1 中取出空单元格并将其填充到 A12 (因此您在 A12 中插入的值被删除)。


解决方案

插入原始列 G 后移至

ws.Cells(ws.Rows.Count, 7 + 6).End(xlUp).Row

【讨论】:

  • 刚刚意识到你在解释什么。非常感谢它现在有效。我也会指定我的工作表!谢谢你的建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-30
  • 2019-05-16
  • 1970-01-01
  • 1970-01-01
  • 2022-01-09
相关资源
最近更新 更多