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