在多个工作表上选择并自动填充单元格-Excel VBA

时间:2019-05-20 11:33:03

标签: excel vba

我想在每个名为“ $A$5:$A$37”的工作表中的单元格Arbeitsblatt XX中自动填充数据。
我能够获得一些有关自动填充部分以及在每个工作表中重复的代码。
来源:

现在,结合我的编码模板几乎成功了。我只能在包含相关按钮的工作表上自动填充,或者就像现在一样,如下面的代码所示,我可以选择每张工作表中的所有相关单元格,但不进行自动填充。

我想这与缺少对工作表的引用有关,但是我太愚蠢了,无法检测到。感谢您的帮助。

            Sub FillDown()
            Dim xRng As Range
            Dim xRows As Long, xCols As Long
            Dim xRow As Integer, xCol As Integer

            Dim wsQ As Worksheet

            Set xRng = Selection
            Set currws = ActiveSheet

            Application.ScreenUpdating = False


            For Each wsQ In ThisWorkbook.Worksheets

             If Left(wsQ.Name, 12) = "Arbeitsblatt" Then
                    With wsQ
                     wsQ.Activate
                Cells(5, 1).Resize(33, 1).Select

                xCols = xRng.Columns.CountLarge
                xRows = xRng.Rows.CountLarge
            For xCol = 1 To xCols
              For xRow = 1 To xRows - 1
                If xRng.Cells(xRow, xCol) <> "" Then
                  xRng.Cells(xRow, xCol) = xRng.Cells(xRow, xCol).Value
                  If xRng.Cells(xRow + 1, xCol) = "" Then
                    xRng.Cells(xRow + 1, xCol) = xRng.Cells(xRow, xCol).Value
                  End If
                End If
              Next xRow
            Next xCol
            currws.Activate

                     End With
                End If
            Next wsQ

            Application.ScreenUpdating = True
            End Sub

1 个答案:

答案 0 :(得分:0)

我感到非常难过,看到有你的问题没有答案或建议呢。请让我尝试帮助。

我喜欢简单的代码,因此我尝试使用Excel提供的const arr1 = [{id: 1, user_id: 1},{id: 2, user_id: 2},{id: 3, user_id: 3},{id: 4, user_id: 4}] const arr2 = [{id: '1', user_id: '1'},{id: '2', user_id: '2'},{id: '3', user_id: '3'}] const newArray = []; const lookup = {}; // if it is object... for (const y of arr2) { lookup[y.id]=true; // ... y.id remains string ... } for (const x of arr1) { if(!lookup[x.id]) { // ... numbers are stringified when used as property accessor newArray.push(x); } } console.log(newArray);方法。请参阅下面在示例工作簿上测试过的代码:

.AutoFill

我不确定您要自动填充的内容是什么,因此,此简单代码可能会或可能不够。如果您可以提供更多信息(例如,您要尝试自动填充哪些数据,并且始终以A5开头,或者是否已经将单元格填充了一半,而您只需要完成其余操作,等等)

请让我知道结果,以便我或其他人进一步提供帮助。谢谢。