2017-06-16 78 views
0

我的选项按钮链接单元格有问题。每当链接单元格的值发生变化时,我想加载一个宏。 我尝试了两种不同的方法,当按钮更改值时,它们都不起作用。如果我输入一个选定的单元格的值,我的宏将加载。选项按钮链接单元格更改时的动作

这里是我的两个技术:

Private Cel_CONGESg As Byte 
Private Sub Worksheet_Calculate() 
Dim Ws As Worksheet 

Set Ws = ThisWorkbook.Sheets("Externe") 

If Ws.Range("$I$12").Value <> Cel_CONGESg Then 
    MsgBox "heheheheeheheheheee" 
End If 

Cel_CONGESg = Ws.Range("$I$12").Value 

End Sub 

第二种方法

Private Sub Worksheet_Change(ByVal target As Range) 
Dim CongesG 
Dim Ws As Worksheet 

Set CongesG = Ws.Range("$I$12") 

If Not Application.Intersect(CongesG, Range(target.Address)) _ 
     Is Nothing Then 
    If Ws.Range("$I$12").Value = 2 Or Ws.Range("$I$12").Value = 0 Then 
     Ws.Range("$I$13").EntireRow.Hidden = True 
      With Range("H12:L12").Borders(xlEdgeBottom) 
       .LineStyle = xlDot 
       .Color = RGB(51, 63, 79) 
       .Weight = xlThin 
      End With 
    ElseIf Ws.Range("$I$12").Value = 1 Then 
     Ws.Range("$I$13").EntireRow.Hidden = False 
      With Range("H12:L12").Borders(xlEdgeBottom) 
       .LineStyle = xlNone 
      End With 
    End If 'I12 Congés 
End If 'Application intersect CongesG 
End Sub 

能否请你帮我明白了什么问题?

预先感谢您。祝你有美好的一天。

enter image description here

回答

0

您没有使用Worksheet_Change事件的全部功能,并且Target,这已经被定义为Range

尝试下面的代码:

Private Sub Worksheet_Change(ByVal Target As Range) 

Dim CongesG As Range 

Set CongesG = Range("$I$12") 

If Not Application.Intersect(CongesG, Target) Is Nothing Then 
    Application.EnableEvents = False 
    Select Case Target.Value 
     Case 2, 0 
      Target.Offset(1).EntireRow.Hidden = True 
      With Range("H12:L12").Borders(xlEdgeBottom) 
       .LineStyle = xlDot 
       .Color = RGB(51, 63, 79) 
       .Weight = xlThin 
      End With 
     Case 1 
      Target.Offset(1).EntireRow.Hidden = False 
      With Range("H12:L12").Borders(xlEdgeBottom) 
       .LineStyle = xlNone 
      End With 
    End Select 
End If 'Application intersect CongesG 
Application.EnableEvents = True 

End Sub 
+0

喜晒,感谢您的时间。不幸的是,这段代码不起作用......对工作表完全没有影响:(我复制/粘贴它完全确保)编辑:当我手动修改行(不与选项按钮),它确实工作和以前一样的问题 –

+0

经过进一步的研究,我认为我想做的事情是不可能的......似乎调用worksheet_change或worksheet_calculate是不可能的,当更改的单元格被另一个操作(CheckBox或选项按钮),我可能必须为我的linkedcell设置一个公式(例如O12:“= I12”),它可以工作,或者为每个选项按钮指定一个宏,最后一个选项不适用于没有我的optionbutton激活(值= 0)。更多信息[这里](https://stackoverflow.com/questions/20377911/change-worksheet-when-a-cell-value-and-a-checkbox-change) –

+0

关于它的另一个话题,请参阅[Neil Flaming的2010-10-07答案](https://www.experts-exchange.com/questions/26526885/Run-code-when-cell-value-change S-作为一种结果-的-AN-action.html)。 如果您有任何线索,请告诉我! :d –

相关问题