Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel行合成_Excel_Vba - Fatal编程技术网

Excel行合成

Excel行合成,excel,vba,Excel,Vba,首先,在15年的Excel编程中,我从未见过这样的事情 更轻松的是,我觉得这个特定的Excel文件经常出现:p 说真的,我真的不明白发生了什么事 问题 代码(我没有编写)根据条件运行并隐藏行。当您单击第59行中C列以外的任何单元格时,它显示该单元格来自第58行。只有在C单元中,它才显示正确的地址 屏幕截图 我试过什么? 首先,我认为这是一个屏幕更新问题,但正如你看到的代码,这是不可能的 我手动进入从A列到D列的所有单元格,并在即时窗口中键入?Activecell.Row。我得到了58,59,5

首先,在15年的Excel编程中,我从未见过这样的事情

更轻松的是,我觉得这个特定的Excel文件经常出现:p

说真的,我真的不明白发生了什么事

问题

代码(我没有编写)根据条件运行并隐藏行。当您单击第
59行中C列以外的任何单元格时,它显示该单元格来自第
58行。只有在C单元中,它才显示正确的地址

屏幕截图

我试过什么?

  • 首先,我认为这是一个
    屏幕更新问题
    ,但正如你看到的代码,这是不可能的
  • 我手动进入从A列到D列的所有单元格,并在即时窗口中键入
    ?Activecell.Row
    。我得到了
    58,59,58,58
  • 检查谷歌是否有人曾经遇到过这种问题。但是找不到一个实例!我不知道还有什么问题
  • 代码

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        Dim i, j, k, lastrow As Long
        Dim finlast As Long
        
        Application.ScreenUpdating = False
        
        'Income_Disc
        lastrow = Sheets("Financial_Disc1").Range("E65536").End(xlUp).Row
        finlast = Sheets("Financial_Disc").Range("A65536").End(xlUp).Value + 1
        
        If Target.Column = 9 And Target.Row = 1 Then
            'Unhide Rows if I1 is double clicked
            Sheets("Financial_Disc1").Rows("1:65536").EntireRow.Hidden = False
        Else
            If Target.Row > 7 And Target.Row < lastrow Then
                If Target.Column = 9 Then
                    'Hide Rows
                    For j = Target.Row To lastrow
                        If Sheets("Financial_Disc1").Range("B" & CStr(j + 1)) <> "" Then
                            'Hide Rows
                            Sheets("Financial_Disc1").Range("A" & CStr(j)).EntireRow.Hidden = True
                            Exit For
                        Else
                            'Hide Rows
                            Sheets("Financial_Disc1").Range("A" & CStr(j)).EntireRow.Hidden = True
                        End If
                    Next j
                End If
            End If
        End If
        
        Sheets("Financial_Disc1").Range("A8:A65536").ClearContents
        
        For i = 8 To lastrow
            If Sheets("Financial_Disc1").Range("A" & CStr(i)).EntireRow.Hidden = True Then
                If Sheets("Financial_Disc1").Range("B" & CStr(i)) <> "" Then
                    Sheets("Financial_Disc1").Range("A" & CStr(i)) = ""
                End If
            Else
                If Sheets("Financial_Disc1").Range("B" & CStr(i)) <> "" Then
                    Sheets("Financial_Disc1").Range("A" & CStr(i)) = finlast
                    finlast = finlast + 1
                End If
            End If
        Next i
        Application.ScreenUpdating = True
    End Sub
    
    Private子工作表\u双击之前(ByVal目标作为范围,Cancel作为布尔值)
    尺寸i,j,k,最后一排一样长
    暗淡的尾鳍持续时间一样长
    Application.ScreenUpdating=False
    “收入”光盘
    lastrow=工作表(“财务Disc1”)。范围(“E65536”)。结束(xlUp)。行
    finlast=工作表(“金融盘”)。范围(“A65536”)。结束(xlUp)。值+1
    如果Target.Column=9,Target.Row=1,则
    '如果双击I1,则取消隐藏行
    表(“财务表1”)。行(“1:65536”)。EntireRow.Hidden=False
    其他的
    如果Target.Row>7且Target.Row
    杂项积分

    正如您所看到的,这个文件有相反的列,因为它来自我在沙特阿拉伯的一个客户

    我的问题


    有人能看出问题出在哪里吗?或者我应该简单地将其视为一个“罕见”错误而不予理会?

    请检查行中是否有合并的单元格-遍历它们会导致行“移位”

    您有合并的单元格吗?Gary的学生!你是个明星!把它贴出来作为答案。我觉得自己很愚蠢,为什么我不检查一下呢!与你在名字框问题上给我的帮助相比,这算不了什么@悉达多看到我在你的帖子上的评论。我看到了,但说真的,我应该想到这一点!我猜在凌晨3点26分,我的脑细胞放弃了:|@SiddharthRout很容易错过,因为我们大多数人都避免像瘟疫一样的合并细胞!发生在我们所有人身上,希德!