gpt4 book ai didi

Excel:用于将公式向下拖动到列末尾的宏

转载 作者:行者123 更新时间:2023-12-02 22:00:10 25 4
gpt4 key购买 nike

我正在使用一个宏来创建工作表的副本,然后将其重命名,删除一些列并将公式插入到单元格中,然后将其向下拖动。

拖下来的部分不起作用!

Sub filterData()
'
' filterData Macro
' Filter data
'
' Keyboard Shortcut: Ctrl+m
'
Sheets("devices").Select
Sheets("devices").Copy After:=Sheets(1)
Sheets("devices (2)").Select
Sheets("devices (2)").Name = "filterData"
ActiveWorkbook.Save
Columns("G:J").Select
Selection.Delete Shift:=xlToLeft
Columns("H:AA").Select
Selection.Delete Shift:=xlToLeft
ActiveWorkbook.Save
Range("G2").Select
ActiveCell.FormulaR1C1 = _
"=LEFT(devices!RC[4],IFERROR(SEARCH("""""""",devices!RC[4]),SEARCH(""-"",devices!RC[4]))-1)"
ActiveWorkbook.Save
Range("G2").Select
Selection.AutoFill Destination:=Range("Table122[Display]")
Range("Table122[Display]").Select
End Sub

Image

如您所见,将公式向下拖动到最后填充的单元格的部分不起作用!!!

更新

我也在代码中添加了以下内容,但它仍然不起作用;

lastrow = Range("G2").End(xlUp).Row --new line
Range("G2").Select
ActiveCell.FormulaR1C1 = _
"=LEFT(devices!RC[4],IFERROR(SEARCH("""""""",devices!RC[4]),SEARCH(""-"",devices!RC[4]))-1)"
Range("G2").Select
Selection.AutoFill Destination:=Range("G2:G" & lastrow) --new line

最佳答案

由于它是一个表(VBA ListObject),您可以一次填充整个 ListColumn:

ActiveCell.ListObject.ListColumns("Display").DataBodyRange.Formula = _ 
"=LEFT(devices!RC[4],IFERROR(SEARCH("""""""",devices!RC[4]),SEARCH(""-"",devices!RC[4]))-1)"

另请注意,您可以删除宏记录器生成的 Select 语句。例如:

Columns("G:J").Select
Selection.Delete Shift:=xlToLeft

可以只是:

Columns("G:J").Delete Shift:=xlToLeft

最后一个技巧是完全限定范围,例如:

Worksheets("filterData").Columns("G:J").Delete Shift:=xlToLeft

既然你已经接受了这个答案,我现在就停下来。除了说我确实喜欢这个动画!

关于Excel:用于将公式向下拖动到列末尾的宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22284748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com