繁体   English   中英

在单元格中更改新数据时,将一行数据移到顶部

[英]Move a row of data on top when new data changed in a cell

我到处搜索,但没找到解决方案。

我有一张数据表,由b PLC更新到我工厂的控制系统。 例如,“workstation1”如果当前正在工作将返回一个信号为1,如果停止,则返回0.因此,对于workstation2,3,4 ......

我正在处理的工作表已经显示了工作站的状态(0或1),就像A列中的工作站名称一样,状态在B列中。 问题是,我想当一个站的状态发生变化(1到0或0到1)时,该站的整行一直向上移动到表的顶部,以便我可以检查最近哪个站操作。 这可能吗? 另外1个问题是PLC更改了自动填充的数据。 我尝试了一些marco,当新数据被键盘“输入”时触发它,它不起作用。 提前谢谢你,抱歉我的英语不好。

在左侧的VBA编辑器中选择ThisWorkbook,然后在左下拉菜单的顶部选择Workbook,然后在右下拉菜单中选择SheetChange。 包含此代码:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Column = 2 and Target.Row>2 Then 'after a value changes in B column
        Application.EnableEvents = False ' to prevent this change from being seen as another change and causing a loop
        Target.EntireRow.Cut
        sh.Range("A2").EntireRow.Insert Shift:=xlDown 'A2 because I'm assuming you have a header in your first row
        Application.EnableEvents = True 'next sheet changes will cause this to run again
    End If
End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM