|
楼主 |
发表于 2022-1-14 20:48
|
显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
本帖最后由 mythqiu 于 2022-1-14 21:01 编辑
'代码显示内容
Private Sub ShowDhFrm(pg As Long)
'代号窗体功能 初版 2018年9月3日
'更新 增加翻页 功能
On Error Resume Next
Dim Rd(), RowCurr&, JRend&, i&, RDH(), Ui&, j&, St$, k&, Po As Range
Const DataPage = 9 '每页数量 和窗体按键一致
RowCurr = ActiveCell.Row: JRend = [H65536].End(3).Row
If RowCurr = 0 Then
RowCurr = JRend
ElseIf RowCurr > JRend Then
RowCurr = JRend
End If
Rd = Range("k4:k" & RowCurr - 1): Ui = UBound(Rd): j = 0
For i = Ui To 1 Step -1
If Len(Rd(i, 1)) > 2 And Left(Rd(i, 1), 1) & Right(Rd(i, 1), 1) = "<>" Then
j = j + 1
ReDim Preserve RDH(1 To 1, 1 To j)
RDH(1, j) = Rd(i, 1)
If j >= 80 Then Exit For '只取前120个代号
End If
Next
If j Mod DataPage = 0 Then k = j \ DataPage Else k = j \ DataPage + 1 '设置翻页
If j = 0 Then k = 1
Page = pg
ReDim Preserve RDH(1 To 1, 1 To k * DataPage)
Rem 初始化按键
With Me
For i = 1 To DataPage Step 1
.Controls("CB" & i).Caption = "空": .Controls("CB" & i).Enabled = True
Next i
For i = 1 To DataPage Step 1
If Len(RDH(1, (Page - 1) * DataPage + i)) Then .Controls("CB" & i).Caption = RDH(1, (Page - 1) * DataPage + i): .Controls("CB" & i).ControlTipText = "" & (Page - 1) * DataPage + i & "#代号:" & RDH(1, (Page - 1) * DataPage + i) Else .Controls("CB" & i).Enabled = False
Next i
If Page = 1 Then .CBt1.Enabled = False Else .CBt1.Enabled = True
If Page = k Then .CBt2.Enabled = False Else .CBt2.Enabled = True
Erase Rd, RDH
End With
End Sub
修改了红色的地方。代号可以正常显示第一页、翻页页有问题。不知道问题在那里,这个代码我很久都没动过了
另外,你的表格计算在我的2016上完全不正常。窗口代码视乎也有改动,也不知道你的计算是怎么搞的,无从下手。
|
|