在该控件上单击右键,在弹出的属性框中看看是否选中了 General 标签页中的AllowBigSelection项,HighLight选中1-Always FocusRect选中 1-LightStyle标签页中的GridLineFixed项选中2-Inset
给你贴个例子:网格-公司业绩,直接粘贴即可使用Option Explicit Private Sub Form_Click() '打印选定的网格区域数据 '在选择所有单元格的情况下可实现所有网格数据打印 '单击网格最左上角说明行列交叉部位可以选择所有单元格 Printer.Print ""; MSFlexGrid1.Clip Printer.EndDoc End Sub Private Sub Form_Load() Dim intI As Integer 'MSFlexGrid1.Cols为网格总列数 'MSFlexGrid1.Rows为网格总行数 '建立说明列 For intI = 1 To MSFlexGrid1.Cols - 1 MSFlexGrid1.Row = 0 '设定当前行 MSFlexGrid1.Col = intI '设定当前列 MSFlexGrid1.Text = Str(1990 + intI) '设定当前行、列的值 Next intI '建立说明行 For intI = 1 To MSFlexGrid1.Rows - 1 MSFlexGrid1.Col = 0 '设定当前列 MSFlexGrid1.Row = intI '设定当前行 If intI = MSFlexGrid1.Rows - 1 Then MSFlexGrid1.Text = "年总和" Else MSFlexGrid1.Text = MonthName(intI) '设定当前行、列的值 End If Next intI End Sub '清除单元格数据,然后可以重新录入 Private Sub MSFlexGrid1_DblClick() Dim intR As Integer Dim sngSum As Single '用单击来设置网格的Row和Col属性 '将键入的数值加入网格 MSFlexGrid1.Text = "" sngSum = 0 '每次KeyPress事件都对当前列的12行数据求和 For intR = 1 To MSFlexGrid1.Rows - 2 MSFlexGrid1.Row = intR sngSum = sngSum + Val(MSFlexGrid1.Text) Next intR '和数显示在最后一行 MSFlexGrid1.Row = MSFlexGrid1.Rows - 1 MSFlexGrid1.Text = Str(sngSum) End Sub '对单元格录入数据 Private Sub MSFlexGrid1_KeyPress(KeyAscii As Integer) Dim intR As Integer Dim sngSum As Single Dim intOldRow As Integer, intOldCol As Integer '用单击来设置网格的Row和Col属性 '将键入的数值加入网格 MSFlexGrid1.Text = MSFlexGrid1.Text + Chr(KeyAscii) '保存当前行和列 intOldRow = MSFlexGrid1.Row intOldCol = MSFlexGrid1.Col sngSum = 0 '每次KeyPress事件都对当前列的12行数据求和 For intR = 1 To MSFlexGrid1.Rows - 2 MSFlexGrid1.Row = intR sngSum = sngSum + Val(MSFlexGrid1.Text) Next intR '和数显示在最后一行 MSFlexGrid1.Row = MSFlexGrid1.Rows - 1 MSFlexGrid1.Text = Str(sngSum) '恢复当前行和列 MSFlexGrid1.Row = intOldRow MSFlexGrid1.Col = intOldCol End Sub
Private Sub Form_Click()
'打印选定的网格区域数据
'在选择所有单元格的情况下可实现所有网格数据打印
'单击网格最左上角说明行列交叉部位可以选择所有单元格
Printer.Print ""; MSFlexGrid1.Clip
Printer.EndDoc
End Sub
Private Sub Form_Load()
Dim intI As Integer
'MSFlexGrid1.Cols为网格总列数
'MSFlexGrid1.Rows为网格总行数
'建立说明列
For intI = 1 To MSFlexGrid1.Cols - 1
MSFlexGrid1.Row = 0 '设定当前行
MSFlexGrid1.Col = intI '设定当前列
MSFlexGrid1.Text = Str(1990 + intI) '设定当前行、列的值
Next intI
'建立说明行
For intI = 1 To MSFlexGrid1.Rows - 1
MSFlexGrid1.Col = 0 '设定当前列
MSFlexGrid1.Row = intI '设定当前行
If intI = MSFlexGrid1.Rows - 1 Then
MSFlexGrid1.Text = "年总和"
Else
MSFlexGrid1.Text = MonthName(intI) '设定当前行、列的值
End If
Next intI
End Sub
'清除单元格数据,然后可以重新录入
Private Sub MSFlexGrid1_DblClick()
Dim intR As Integer
Dim sngSum As Single
'用单击来设置网格的Row和Col属性
'将键入的数值加入网格
MSFlexGrid1.Text = ""
sngSum = 0
'每次KeyPress事件都对当前列的12行数据求和
For intR = 1 To MSFlexGrid1.Rows - 2
MSFlexGrid1.Row = intR
sngSum = sngSum + Val(MSFlexGrid1.Text)
Next intR
'和数显示在最后一行
MSFlexGrid1.Row = MSFlexGrid1.Rows - 1
MSFlexGrid1.Text = Str(sngSum)
End Sub
'对单元格录入数据
Private Sub MSFlexGrid1_KeyPress(KeyAscii As Integer)
Dim intR As Integer
Dim sngSum As Single
Dim intOldRow As Integer, intOldCol As Integer
'用单击来设置网格的Row和Col属性
'将键入的数值加入网格
MSFlexGrid1.Text = MSFlexGrid1.Text + Chr(KeyAscii)
'保存当前行和列
intOldRow = MSFlexGrid1.Row
intOldCol = MSFlexGrid1.Col
sngSum = 0
'每次KeyPress事件都对当前列的12行数据求和
For intR = 1 To MSFlexGrid1.Rows - 2
MSFlexGrid1.Row = intR
sngSum = sngSum + Val(MSFlexGrid1.Text)
Next intR
'和数显示在最后一行
MSFlexGrid1.Row = MSFlexGrid1.Rows - 1
MSFlexGrid1.Text = Str(sngSum)
'恢复当前行和列
MSFlexGrid1.Row = intOldRow
MSFlexGrid1.Col = intOldCol
End Sub