假设A列为序号,B列为菜名,D5格显示,
以下采用VBA
1、按Alt+F11打开VBA编辑器,
2、新建一个模块,输入以下内容
Option Explicit
Dim onT, rAll
Dim Rng As Range
Sub StartTimer()
rAll = Sheets("Sheet1").Range("B1").End(xlDown).Row
Set Rng = Sheets("Sheet1").Cells(Int((rAll * Rnd) + 2), 2)
Sheets("Sheet1").Range("D5") = IIf(Rng.Row = 2, "", Rng.Offset(-1, 0)) & " " & Rng & " " & IIf(Rng.Row = rAll, "", Rng.Offset(1, 0))
onT = Now + TimeValue("00:00:01")
Application.OnTime onT, "StartTimer"
End Sub
Sub EndTimer()
On Error Resume Next
Application.OnTime onT, "StartTimer", , False
End Sub
3、在编辑器对象窗口中选中Sheet1表(这里假定要操作显示数据的表就是Sheet1),录入以下代码
Option Explicit
Dim yn
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If yn Then
yn = False
Call StartTimer
Else
yn = True
Call EndTimer
End If
End Sub
4、现在回到工作表Sheet1中,当按回车,或鼠标点中某一格后,程序会运行D5格会每隔1秒变换显示;当再次按回车,或鼠标再次点中其他单元格后,程序停止变换,显示固定。
你说的不清楚能详细说不,这么简单用几个函数就搞定了,用不到宏的