自动填充活动工作表后,在另一工作表上自动工作(无错误)

问题描述 投票:0回答:1

我正在尝试重写我的代码,以避免选择和吸引人,但我遇到了问题。这可能很简单,但是我很感谢您的帮助。

我一直在寻找类似的问题,但是如果这是重复的,还没有发现一个对不起的问题。

当我运行我的代码时,选择大小写有效,("Artikelen maken")上的自动填充有效,但另一张纸无法自动填充

Public rngab As Range
Public rngc As Range
Public rngdk As Range
Public rngac As Range
Public rngdi As Range
Public rngrow As Range

Sub samenstelling1()

Set rngrow = ActiveSheet.Rows(2)
Set rngab = ActiveSheet.Range("a2:b2")
Set rngc = ActiveSheet.Range("c2")
Set rngdk = ActiveSheet.Range("d2:k2")
Set rngac = ActiveSheet.Range("a2:c2")
Set rngdi = ActiveSheet.Range("d2:i2")

        Case Is = 2
            With Sheets("Artikelen_aanmaken")
                rngrow.Offset(19).Resize(10).EntireRow.Hidden = True
                rngab.AutoFill Destination:=rngab.Resize(2), Type:=xlFillSeries
                rngc.AutoFill Destination:=rngc.Resize(2), Type:=xlFillDefault
                rngdk.AutoFill Destination:=rngdk.Resize(2), Type:=xlFillSeries
            End With

                With Sheets("Artikelen_in_stuklijsten")      'also tried with .activate
                    rngrow.Offset(19).Resize(10).EntireRow.Hidden = True
                    rngac.AutoFill Destination:=rngac.Resize(2), Type:=xlFillSeries

                    rngdi.AutoFill Destination:=rngdi.Resize(2), Type:=xlFillDefault
                    'does work as
                    'rngac.Select
                    'Selection.AutoFill Destination:=rngac.Resize(2), Type:=xlFillSeries
                End With

这是我要重写的工作代码

'             Sheets("Artikelen_in_stuklijsten").Activate
'             Range("18:30").EntireRow.Hidden = True
'             Range("A2:c2").Select
'             Range("A2:c2").AutoFill Destination:=Range("A2:c3"), Type:=xlFillSeries
'             Range("d2:i2").Select
'             Range("d2:i2").AutoFill Destination:=Range("d2:i3"), Type:=xlFillDefault

已解决:

Set rngrow = Sheets("Artikelen_aanmaken").Rows(2)
Set rngab = Sheets("Artikelen_aanmaken").Range("a2:b2")
Set rngc = Sheets("Artikelen_aanmaken").Range("c2")
Set rngdk = Sheets("Artikelen_aanmaken").Range("d2:k2")
Set rngac = Sheets("Artikelen_in_stuklijsten").Range("a2:c2")
Set rngdi = Sheets("Artikelen_in_stuklijsten").Range("d2:i2")

Samenstelling.UserForm_Initialize
Samenstelling.Show

Range("q500") = letter
Range("N500") = tekeningnr
Range("P500") = revletter
Range("R500") = omschrijving
Range("O500") = posnummer

Select Case posnummer
Case Is = 4
                With Sheets("Artikelen_aanmaken").Activate
                    rngrow.Offset(19).Resize(10).EntireRow.Hidden = True
                    rngab.AutoFill Destination:=rngab.Resize(4), Type:=xlFillSeries
                    rngc.AutoFill Destination:=rngc.Resize(4), Type:=xlFillDefault
                    rngdk.AutoFill Destination:=rngdk.Resize(4), Type:=xlFillSeries
                End With

                    Sheets("Artikelen_in_stuklijsten").Activate
                        rngrow.Offset(19).Resize(10).EntireRow.Hidden = True
                        rngac.Select
                        Selection.AutoFill Destination:=rngac.Resize(4), Type:=xlFillSeries
                        rngdi.Select
                        Selection.AutoFill Destination:=rngdi.Resize(4), Type:=xlFillDefault
excel vba autofill
1个回答
0
投票

我对您的代码进行了一些重新排列,但是我没有对其进行测试。将其更多地看作是对概念的解释,而不是可行的解决方案:

With Sheets("Artikelen_aanmaken")
    Set rngrow = .Rows(2)
    Set rngab = .Range("a2:b2")
    Set rngc = .Range("c2")
    Set rngdk = .Range("d2:k2")
    Set rngac = .Range("a2:c2")
    Set rngdi = .Range("d2:i2")

    rngrow.Offset(19).Resize(10).EntireRow.Hidden = True
    rngab.AutoFill Destination:=rngab.Resize(2), Type:=xlFillSeries
    rngc.AutoFill Destination:=rngc.Resize(2), Type:=xlFillDefault
    rngdk.AutoFill Destination:=rngdk.Resize(2), Type:=xlFillSeries
End With
© www.soinside.com 2019 - 2024. All rights reserved.