我用以下语句将MSFlexgrid的单元格居中,Dim i, j As Long
Dim cols, rows As Long
cols = MSFlexGrid1.ColSel
rows = MSFlexGrid1.RowSel
j = MSFlexGrid1.Col
i = MSFlexGrid1.Row
For i = i To rows
   For j = j To cols
      MSFlexGrid1.Row = i
      MSFlexGrid1.Col = j      
      MSFlexGrid1.CellAlignment = flexAlignLeftCenter
   Next
Next他为什么只将第一行居中,而且,这个语句执行后选择范围就变化了,怎样才能使原来的选择不变化。

解决方案 »

  1.   

    Dim i, j As Long
    Dim cols, rows As Long'固有参数
    cols = MSFlexGrid1.ColSel
    rows = MSFlexGrid1.RowSel
    j = MSFlexGrid1.Col
    i = MSFlexGrid1.Row
    For i = i To rows’--------------i
       For j = j To cols’------------j
          MSFlexGrid1.Row = i
          MSFlexGrid1.Col = j      
          MSFlexGrid1.CellAlignment = flexAlignLeftCenter’--------非居中
       Next
    Next
    参考下面的居中代码:
    Private Sub Command1_Click()
    With MSFlexGrid1
    .rows = 10
    .cols = 5
    For i = 0 To 4
    For j = 0 To 9
    .Row = j
    .Col = i
    .Text = i * j
    .CellAlignment = 3
    Next
    Next
    End With
    End Sub