各位老师: 假设我当前选中的行为3至6行。要改变3至6行的行高改为280 用循环改变的特别慢
Dim i As Integer, j As Integer
For j = 3 To 6
Me.Grid1.RowHeight(j) = 280
Next j如果用 Me.Grid1.RowHeight(-) = 280
这样以将所用的行高都改为了280。
还有其它更快一点的办法吗?谢谢
Dim i As Integer, j As Integer
For j = 3 To 6
Me.Grid1.RowHeight(j) = 280
Next j如果用 Me.Grid1.RowHeight(-) = 280
这样以将所用的行高都改为了280。
还有其它更快一点的办法吗?谢谢
解决方案 »
- timer中的事件,会受msgbox影响吗
- 图象压缩
- 怎样获得ACCESS数据库的路径???
- 关于ado导出到excel的问题,请大家进来看看,帮帮我,解决了我送500分!!!
- 看在阶级友情的份上,拉兄弟一把!
- 如何将本地ACCESS数据库中的数据上传到远程服务器上(有固定的IP)的SQL server?很急!
- Excel中某些列合并了单元格,如何使其还原?
- 急!!!在VB程序中调用Sql Server Query Analyzer,答者給分
- 在vb中如何实现把图像保存到ms sql server 2000中?
- 安装制作问题vb
- 为什么我直接按F8下一步无效 必须用鼠标点击逐步调试才行呢
- 连接远程mysql数据库
试试先.Redraw = False,修改后.Redraw = true
Dim p As Boolean, p1 As Boolean
Dim MyData As Long
Dim intRow As Integer
p1 = False '判断是否有筛选
LockWindowUpdate frm_InData.Grid1.hwnd
Me.Grid1.AllowUserResizing = flexResizeBoth
If Me.Grid1.Rows > 1 And arrgeesort Then
For j = 1 To Me.Grid1.Rows - 1
p = False
For i = 0 To 21
If arrRowset(i) Then
p1 = True
If Me.Grid1.TextMatrix(j, i) = arrRowText(i) Then
p = False
Else
p = True
Exit For
End If
End If
Next i
If p Then
If Me.Grid1.RowHeight(j) > 0 Then
Me.Grid1.RowHeight(j) = 0
End If
Else
If Me.Grid1.RowHeight(j) = 0 Then
Me.Grid1.RowHeight(j) = 255
End If
End If
Next j
If p1 = False Then
Me.Grid1.RowHeight(-1) = 255
End If
For j = 1 To Me.Grid1.Rows - 1
If Me.Grid1.RowHeight(j) > 0 Then
MyData = MyData + Val(Me.Grid1.TextMatrix(j, 11))
intRow = intRow + 1
Me.Grid1.FillStyle = 1
Me.Grid1.col = 0
Me.Grid1.row = j
If intRow Mod 2 = 0 Then
If Me.Grid1.CellBackColor = 16777215 Then
Me.Grid1.ColSel = Me.Grid1.Cols - 1
Me.Grid1.CellBackColor = &HFFFFC0
End If
Else
If Me.Grid1.CellBackColor = 16777152 Then
Me.Grid1.ColSel = Me.Grid1.Cols - 1
Me.Grid1.CellBackColor = &HFFFFFF
End If
End If
Me.Grid1.FillStyle = 0
End If
Next j
Me.txt_qty = MyData
Me.txt_Count = intRow
End If
LockWindowUpdate 0
'Me.AutoRedraw = True
End Sub
简单的办法, 加两句话就提速100倍:你原来是:
For j = 1 To Me.Grid1.Rows - 1
...
next j外面加上两句变成:
with grid1
.visible= false
For j = 1 To .Rows - 1
...
next
.visible =true
end with就这样, for里面的语句,凡是之前写成 "Me.Grid1.XXX" 的,统统改成 ".XXX"另外, 凡是本窗体的控件, 引用之前就不必加ME.了