首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在未按预期响应的循环中分组单元格

在未按预期响应的循环中分组单元格
EN

Stack Overflow用户
提问于 2017-08-16 20:09:56
回答 1查看 56关注 0票数 0

背景:

我有一个名为RM的表,我正在通过一个循环将里程碑数据从一个名为Finance的表中提取出来(循环是每个表(“RM”))。一旦数据被前移,工作表就应该将项分组为两个小计:

1)对里程碑活动进行分组

2)将在循环过程中停下来的所有东西分组

以下是代码:

代码语言:javascript
复制
Dim i As Integer
Dim LR As Long, FR As Long
    FR = Sheets("Finance").Cells(Sheets("Finance").Rows.Count, 1).End(xlUp).Row
    Sheets("Finance").Cells(FR + 1, 1).Value = "Raw Materials"
    Sheets("Finance").Cells(FR + 1, 7).Value = Sheets("RM").Cells(12, 2).Value
    For i = 16 To 358 Step 18
        LR = Sheets("Finance").Cells(Sheets("Finance").Rows.Count, 1).End(xlUp).Row
        If Sheets("RM").Cells(i, 4) > 0 And Sheets("RM").Cells(i, 2) = "Fixed" Then
            'Milestone row
            Sheets("Finance").Cells(LR + 1, 1).Value = Sheets("RM").Cells(i, 1).Value
            Sheets("Finance").Cells(LR + 1, 7).Value = Sheets("RM").Cells(i, 4).Value
            Sheets("Finance").Rows(LR + 1).Font.Bold = True
            'Number
            Sheets("Finance").Range(Sheets("Finance").Cells(LR + 2, 1), Sheets("Finance").Cells(LR + 9, 1)).Value = Sheets("RM").Cells(i, 1).Value

            'Removed middle section, which pulls over data from different columns

            'Group Milestone subactivities
            If Sheets("Finance").Cells(LR, 1).Value = Sheets("Finance").Cells(LR - 2, 1).Value Then
                Sheets("Finance").Range(Sheets("Finance").Cells(LR + 2, 1), Sheets("Finance").Cells(LR + 9, 1)).EntireRow.Group
            Else
            End If
        Else
        End If
    Next i
    Sheets("Finance").Rows(FR + 1).Font.Bold = True
    If LR - FR > 1 Then
        Sheets("Finance").Range(Sheets("Finance").Rows(FR + 2), Sheets("Finance").Rows(LR)).EntireRow.Group
    Else
    End If

发行:

里程碑事件的分组并不合适。当代码运行时,只有一些里程碑得到它们的分组,尽管总体分组是发生的。

在10个里程碑的列表中,1和10没有里程碑分组,而是2-9 do组。

我想我对If -语句本身有个问题,如果LR-FR>2,但是在穿行过程中,我发现了一些奇怪的东西。

当我逐步处理F8时,我意识到,只有在一个或两个循环发生之后,..copy/..pastespecial的数据才会出现。然后,分组显示粘贴的最后一个可视添加的数据。然后,随后的数据将显示到最后一位。

问题:

是否有办法强制粘贴显示数据?还有什么会导致Excel/VBA进行此活动的吗?

如能在决议上提供任何帮助,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-17 14:42:00

有两件事发生在这个问题上--围绕这个问题:

1)我必须添加另一行,这样里程碑分组就不会结束在与节分组相同的行上(在本例中,在问题中发布的子例程中的循环之后)。

代码语言:javascript
复制
Dim LR as Long

LR = Sheets("Finance").Cells(Sheets("Finance").Rows.Count, 7).End(xlUp).Row
Sheets("Finance").Cells(LR + 1, 7).Value = "-"
Sheets("Finance").Rows(LR + 1).Font.Bold = True

( 2)在循环之后,我把所有的分组都拉出来了。

分组代码最后看起来如下所示:

代码语言:javascript
复制
Dim a as Integer

LR = Sheets("Finance").Cells(Sheets("Finance").Rows.Count, 7).End(xlUp).Row
For i = 5 To LR
    If Sheets("Finance").Cells(i, 1).Font.Bold = False Then
        Sheets("Finance").Rows(i).EntireRow.Group
    Else
    End If
Next i
'Group between sheets
a = Sheets("Finance").Columns(1).Find(What:="Not Raw Materials", LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False).Row
Sheets("Finance").Range(Sheets("Finance").Rows(4), Sheets("Finance").Rows(a - 1)).EntireRow.Group

最后,我必须确保分组从最小的增量到最大的增量,以确保我不会丢失大分组(小计)切换的功能。我经常会失去上一个里程碑的小计开关。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45722189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档