Error失败时取得错误信息 
MatchCount取得与检索条件相一致的字符串数量
MatchIndex设定与检索条件相一致的字符串的索引
MatchLength取得与检索条件相一致的字符串长度
MatchStart取得与检索条件相一致的字符串起始位置
MatchString取得与检索条件相一致的字符串
Pattern 设定检索条件
Replace设定置换字符串
SoundexText取得代表当前检索字符的声音代码
TagCount取得与检索条件相一致的标签数量
TagIndex在多个标签情况下,设定/取得与检索条件相一致的标签索引
TagLength取得与检索条件相一致的标签长度
TagStart取得与检索条件相一致的标签起始位置
TagString取得与检索条件相一致的标签的字符串 
Text设定成为检索对象 
Version取得FlexString的版本号 
FlexString控件属性一览表 
AllowBigSelection设定行列头的选择
AllowUserResizing设定行列大小的设定
BackColor设定FlexArray所有表格的背景颜色
BackColorBkg设定背景颜色
BackColorFixed设定固定行/列的背景颜色
BackColorSel设定选择单元的背景颜色
CellAlignment设定单元里数据的排列方式
CellBackColor设定单元或指定范围的背景颜色 
CellFontBold把单元或指定范围的字体设定为黑体字 
CellFontItalic把单元或指定范围的字体设定为斜体字 
CellFontName设定单元或指定范围的字体
CellFontSize设定单元或指定范围字体的大小
CellFontWidth设定单元或指定范围字体的宽度
CellForeColor设定单元或指定范围字体的颜色
CellHeight返回当前单元的高度
CellLeft返回当前单元的左端位置
CellTop返回当前单元的顶端位置
CellWidth返回当前单元的宽度
CellPicture指定显示在单元或指定范围中的图片
CellPicture
Alingment指定单元或范围中图片的显示位置
CellTextStyle设定单元文本的显示形式
Clip<设定/返回选择范围的内容
Col设定/返回激活单元的列号
ColAlingment( )设定/返回列的排列方式
ColData( )设定/返回一个用户定义信息的长整形数据
ColPosition( )移动列的位置
Cols指定返回列的总数
ColSel指定选择范
ColWidth( )设定所指定列的宽度
FillStyle指定是否改变当前单元或选择范围的内容或单元格式 
FixedCols设定固定列的总数
FixedRows设定固定行的总数
FocusRect设定选中单元周围的Focus Rectangle类型
FontWidth设定字体的宽度
ForeColorFixed设定固定单元的文本颜色
ForeColorSel设定选择单元的文本颜色
FormatString在设计过程中设定列宽、排列方式及固定的行/列 
GridColor指定网格线的颜色
GridColorFixed设定固定网格线的颜色
GridLines指定网格线的类型
GridLinesFixed指定固定单元的网格线形式
HighLight设定是否突出显示选中单元
LeftCol指定显示在最左边的列
MergeCells设定是否合并内容相同的单元格
MergeCol( )设定指定列的单元合并
MergeRow( )设定指定行的单元合并
MouseCol设定鼠标指向的列号
MouseRow设定鼠标指向的行号
ReDraw设定是否刷新FlexArray控件
Picture返回FlexArray控件的图片
PictureType指定用Picture属性生成的图片类型
Row设定/返回激活单元的行号
RowData( )设定/返回一个用户定义信息的长整形数据
RowHeight( )设定指定行的高度
RowHeightMin设定行高的最小值
RowPosition( )移动行的位置
Rows指定行的总数
RowSel指定行的选择范围
SelectionMode设定行、列或单元的选择方式
ScrollBars设定卷动轴的类型
ScrollTrack设定卷动方式
Sort按照选择的基准重新排列行的顺序
Text设定/取得单元的文本
TextArray( )设定/取得任意单元的文本
TextMatrix( )设定/取得任意单元的文本
TextStyle显示单元中文本的3D效果
TextStyleFixed显示固定行/列中文本的3D效果
TopRow指定显示在最上面的行 
Version
FlexArray控件的版本号
WordWrap设定单元中的文本是否换行IsSelected 是否已选择 O.A
IsSubtotal 是否已小记 O.A
Left 对象距左边位置 O.A = 100
LeftCol 指定显示在最左边的列 O.A = 1
LoadArray() 载入数组
LoadGrid() 载入网格 O.A FileName, 0 至 6[,True(含固定行列)|False]
LoadGridURL() 载入网格URL
MergeCells 相同内容的单元格合并类型 O.A = 0|1|2|3|4|5|6
MergeCol 是否上下列合并 O.A(Col) = True
MergeCompare 返回/设置合并比较类型 O.A = 0|1|2
MergeRow 是否左右行合并 O.A(Row) = True
MouseCol 返回鼠标指向的当前列号 O.A
MouseIcon 设定鼠标指向的当前图形 O.A = LoadPicture("C:\.ico")
MousePointer 设置对象的鼠标指针样式 O.A = 0 到 15|99
MouseRow 返回鼠标指向的当前行号 O.A
Move() 移动对象 O.A Left,[Top],[Width],[Height]
MultiTotals ???Multi总数
Name 对象名称(运行时只读) O.A
NodeClosedPicture 节点封闭的图标 O.A = LoadPicture("C:\.ico")
NodeOpenPicture 节点打开的图标 O.A = LoadPicture("C:\.ico")
Object 返回/设置该对象变量 Set DimObjName = O.A
OLEDrag() OLE拖拽数据 O.A
OLEDragMode OLE拖拽方式 O.A = 0|1
OLEDropMode OLE拖拽落下方式 O.A = 0|1|2
Outline() ???外面的线
OutlineBar 返回/设置显示目录树的线条 O.A = 0 至 6
OutlineCol ???外面的线列
OwnerDraw 返回或设置执行 DrawCell 事件 O.A = 0 至 6
Parent 返回该对象所在的对象(只读) O.A.Caption = "Forms"
Picture 返回控件的图片(只读) O.A.属性|方法 = 相应值
PicturesOver 返回控件图片结束 O.A = False|True
PictureType 用Picture属性生成的图片类型 O.A = 0|1
PrintGrid() 打印网格数据 O.A ["主题",True|False,1|2,左右空,上下空]
Redraw 设定是否刷新控件 O.A = 0|1|2
Refresh() 刷新表格 O.A
RemoveItem() 删除指定行 O.A VSG1.RowSel
RightCol 返回右边最大的可见列范围 O.A
RightToLeft 是否将固定行放到右边 O.A = True
Row 设置激活单元的行号 O.A = 2
RowData 设置用户定义的长整形数据 O.A(Row) = UserLong
RowHeight 返回/设置指定行高 O.A(Row) = 100
RowHeightMax 行高的最大值 O.A(Row) = 500
RowHeightMin 行高的最小值 O.A(Row) = 230
RowHidden 是否隐藏指定行 O.A(2) = True|False
RowIsVisible 返回行是否在可见范围中(只读) O.A(Row)
RowOutlineLevel 返回/设置水平行小记 O.A(Row) = 0|1
RowPos 返回行距上边高度(只读) O.A Row
RowPosition 移动行的位置 O.A(Row) = NewRow
Rows 返回/设置总行数 O.A = 2
RowSel 返回/设置最后选择的行 O.A = 2
RowStatus 设置行状态 O.A = 0|1|2|3
SaveGrid() 保存网格内容到二进制文件 O.A FileName, 0 至 6[,True(含固定行列)|False]
ScrollBars 设定卷动轴的方式 O.A = 0|1|2|3
ScrollTips 卷轴提示 O.A = False|True
ScrollTipText 卷轴提示文本 O.A = "Text"
ScrollTrack 行是否随拖动条卷动显示 O.A = False|True
Select() 选择行列范围 O.A Row,Col[,RowSel][,ColSel]
SelectedRow 已选择行(只读) O.A(Row)
SelectedRows 返回所选总行数(只读) O.A
SelectionMode 设置单元焦点选中方式 O.A = 0|1|2|3
SetFocus() 设置到对象焦点 O.A
SheetBorder 表格边框颜色 O.A = Color
ShowCell() 立刻显示到指定单元 O.A Row, Col
ShowComboButton 是否显示当选择时拉下按钮 O.A = 0|1|2
ShowWhatsThis() 显示“这是什么” O.A
Sort 按照选择的基准重新排序顺序方式 O.A = 0 到 10
Subtotal() 小计 O.A 属性名[,其它共9个可省略参数]
SubtotalPosition 是否小计上面或下面的数值 O.A = 0|1
TabBehavior Tab键跳转顺序禁止 O.A = 0|1
TabIndex 对象的Tab选择顺序 O.A = 2
TabStop 是否允许Tab自动选择 O.A = True|False
Tag 存储数据时所需的附加数据 O.A = Str
Text 返回/写入当前单元的文字 O.A = Str
TextMatrix 返回/写入指定单元的文字 O.A(Row, Col) = Str
TextStyle 单元格文字效果 O.A = 0|1|2|3|4
TextStyleFixed 固定行列文本的3D效果 O.A = 0|1|2|3|4
ToolTipText 鼠标指向表格的说明消息 O.A = "TextString"
Top 对象上边距 O.A = 100
TopRow 指定显示在最上面的行 O.A = 5
TreeColor 目录树颜色 O.A = Color
Value 返回当前单元数值部分(只读) O.A
ValueMatrix 返回指定单元数值部分(只读) O.A Row, Col
Version 返回控件的版本号(只读) O.A
VirtualData 虚拟数据 O.A = True|False
Visible 是否显示对象 O.A = True|False
WallPaper 表格壁纸背景图 O.A=LoadPicture(Image) | O.A.属性|方法 = 相应值
WallPaperAlignment 壁纸背景图墙报对齐方式 O.A(Col) = 0 至 10
WhatsThisHelpID 设置与对象相关联的上下文号 O.A = HelpIDString
Width 设置对象宽度 O.A = 5000
WordWrap 设定单元中的文本是否换行 O.A = True|False
ZOrder() 设置对象Z顺序 O.A 0|1VSFlexGrid 常用属性或方法:.FixedRows = 1                            '固定几行
.FixedCols = 1                            '固定几列
.Editable = True                          '允许修改
.AllowUserResizing = flexResizeBoth       '可调整行/列
.FocusRect = flexFocusNone                '无虚框
.SelectionMode = flexSelectionListBox     '焦点选中样式
.BackColor = RGB(255, 255, 255)           '单元背景色
.BackColorSel = vbBlue                    '单元选择色
.BackColorFixed = RGB(208, 192, 160)      '固定单元色
.BackColorAlternate = RGB(255, 250, 230)  '间隔行背景色
.GridColor = RGB(245, 240, 210)           '单元线条色
.ForeColor = RGB(0, 0, 0)                 '单元前景色(字符色)
.RowHeightMin = 260                       '最小行高
.RowHeightMax = 800                       '最大行高
.ColHeightMin = 50                        '最小列宽
.ColHeightMax = 3000                      '最大列宽
.ColWidth(Col) = 1000                     '指定列宽
.RowHeight(Row) = 260                     '指定行高
.TextMatrix(Row,Col) = "Text"             '指定单元字符
.Text = "Text"                            '选定单元字符
.MergeCol(Col) = True                     '允许合并列
.MergeRow(Row) = True                     '允许合并行
.MergeCells = 0|1|2|3|4|5|6               '合并选项
.Cell(选项准则, Row1, Col1, Row2, Col2)   '选择部分的相应准则值
.EditCell                                 '当移动到当前单元时自动选择
.EditSelStart                             '移动到单元时的光标位置
.MousePointer                             '设置对象的鼠标指针样式 O.A = 0 到 15|99
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
几个特殊的属性方法的使用:
FormatString 属性:管道符格式化字符串示例:
下面定义对齐方式同字意,列宽窄同距离
VSG1.FormatString = "^  中 |<     左    |>   右  |>   右  |^  中  "
+++++++++++++++++++++++++
搜索(查找)表格中符合条件的行:
FindRow 属性:该属性返回一个行值
MsgBox VSG1.FindRow(关键词,[指定行],[指定列],[敏感],[精度])
关键词:String,表示要搜索的字符串
指定行/指定列:Long,表示只在指定的行或列中找
敏感:Boolean,
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
'限制只能在指定列输入(这里默认倒数第2列)
Private Sub VSG1_BeforeRowColChange(ByVal OldRow As Long, _
       ByVal OldCol As Long, ByVal NewRow As Long, _
       ByVal NewCol As Long, Cancel As Boolean)  VSG1.Editable = flexEDKbd
  If VSG1.Redraw <> flexRDNone And NewCol <> VSG1.Cols - 2 Then
     Cancel = True
     VSG1.Select NewRow, VSG1.Cols - 2
  End If
End Sub
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
限制不能编辑某些列:(这里限制第1列和第3列)
Private Sub VSG1_RowColChange()
   If VSG1.Col = 1 Or VSG1.Col = 3 Then
      VSG1.FocusRect = flexFocusNone
      VSG1.Editable = flexEDNone
     'SendKeys "{TAB}"
   Else
      VSG1.Editable = flexEDKbd
      SendKeys "{ENTER}"
   End If
End Sub
或:
Private Sub VSG1_RowColChange()
If VSG1.Col = 1 Or VSG1.Col = 3 Then
   SendKeys "{RIGHT}"
Else
   SendKeys "{ENTER}"
End If
End Sub
或:
Private Sub VSG1_RowColChange()
If VSG1.Col = 1 Or VSG1.Col = 3 Then
   VSG1.Editable = flexEDNone
Else
   VSG1.Editable = flexEDKbd
   VSG1.EditCell  '自动选择单元内容
   VSG1.EditSelStart = 0[选到最前]|1[选到指定]|Len(VSG1.Text)[选到最后]
End If
End Sub
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
'对齐方式(-1标示所有)
.ColAlignment(-1) = flexAlignLeftCenter|flexAlignCenterCenter|flexAlignRightCenter
示例1:(最后一行的第3列靠右对齐)
VSG1.Select VSG1.Rows - 1, 2
VSG1.CellAlignment = flexAlignRightCenter
示例2:
VSG1.Row = VSG1.Rows - 1: VSG1.Col = 1
VSG1.CellAlignment = flexAlignRightCenter
示例3:
VSG1.Cell(flexcpAlignment, VSG1.Rows - 1, 1, VSG1.Rows - 1, 3) = flexAlignRightCenter
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
本对象拖放:
Private Sub VSG1_MouseDown(Button As Integer, _
        Shift As Integer, X As Single, Y As Single)
VSG1.Drag
VSG1.DragIcon = LoadPicture("D:\Icon.ico")
VSG1.DragRow VSG1.RowSel
End Sub
或从其它对象拖:
Private Sub VSG2_MouseDown(Button As Integer, _
        Shift As Integer, X As Single, Y As Single)
VSG2.OLEDrag
VSG1.OLEDropMode = flexOLEDropAutomatic
End Sub
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Public Sub VSGridCount(Optional SelRow As Long, Optional SelCol As Long)
Dim X As Long, i As Long
Dim Hj1, Hj2, Hj3 As String
Const A1 = -922337203685477#, A2 = 922337203685477#
On Error GoTo ErrTransact
With frmFG.VSG1
   X = .Rows - 1
   .MergeCells = flexMergeFree
   .MergeRow(X) = True
   .Cell(flexcpText, X, 0, X, 1) = "合 计"
   If .Rows = 3 Then
      .TextMatrix(X, 0) = 0
      .Cell(flexcpText, X, 2, X, 14) = " "
      .Cell(flexcpText, X, 16, X, 17) = "¥0.00"
      Exit Sub
   End If
   'Hj1 = Val(.Aggregate(flexSTSum, 2, 2, X - 1, 2))
   'Hj2 = Val(.Aggregate(flexSTSum, 2, 16, X - 1, 16))
   'Hj3 = CurrencyToStr(Hj2)
   For i = 2 To X - 2
       Hj1 = Hj1 + Val(.TextMatrix(i, 15))
       If Val(.TextMatrix(i, 16)) > 0 Then
          Hj2 = Hj2 + Val(.TextMatrix(i, 15)) * Val(.TextMatrix(i, 16))
       End If
   Next i
   If Hj2 <= A1 Or Hj2 >= A2 Then
     GoTo ErrTransact
   End If
   Hj3 = CurrencyToStr(Hj2)
   .TextMatrix(X, 2) = Hj1
   .Cell(flexcpText, X, 3, X, 15) = IIf(Hj3 = "", " ", Hj3)
   .Cell(flexcpText, X, 16, X, 17) = Format(Hj2, "¥0.00")
   .Cell(flexcpAlignment, X, 2, X, 14) = flexAlignLeftCenter
   '.Select X, 3
   '.CellAlignment = flexAlignLeftCenter
   If SelRow > 1 And SelCol > 0 Then .Select SelRow, SelCol
End With
Exit Sub
ErrTransact:
     MsgBox "你输入的数字过大无法计算!请修改!!!"
End Sub
------------------------------------------------
将数字转换为大写金额的函数:
Function CurrencyToStr(ByVal Number As Currency) As String
  Number = Val(Trim(Number))
  If Number = 0 Then CurrencyToStr = "": Exit Function
  Dim str1Ary As Variant, str2Ary As Variant
  str1Ary = Split("零 壹 贰 叁 肆 伍 陆 柒 捌 玖")
  str2Ary = Split("分 角 元 拾 佰 仟 万 拾 佰 仟 亿 拾 佰 仟 万 拾 佰")
  Dim a As Long, b As Long  '循环基数
  Dim tmp1 As String        '临时转换
  Dim tmp2 As String        '临时转换结果
  Dim Point As Long         '小数点位置
  If Number <= -922337203685477# Or Number >= 922337203685477# Then
     Exit Function
  End If
   tmp1 = Round(Number, 2)
   tmp1 = Replace(tmp1, "-", "")  '先去掉“-”号
   Point = InStr(tmp1, ".")       '取得小数点位置   If Point = 0 Then      '如果有小数点,最大佰万亿
      b = Len(tmp1) + 2   '加2位小数
   Else
      b = Len(Left(tmp1, Point + 1))  '包括点加2位小数
   End If
   ''先将所有数字替换为中文
   For a = 9 To 0 Step -1
       tmp1 = Replace(Replace(tmp1, a, str1Ary(a)), ".", "")
   Next
   For a = 1 To b
       b = b - 1
       If Mid(tmp1, a, 1) <> "" Then
          If b > UBound(str2Ary) Then Exit For
          tmp2 = tmp2 & Mid(tmp1, a, 1) & str2Ary(b)
       End If
   Next
   If tmp2 = "" Then CurrencyToStr = "": Exit Function
   ''〓下面为非正式财务算法,可以去掉〓
   For a = 1 To Len(tmp2)
       tmp2 = Replace(tmp2, "零亿", "亿零")
       tmp2 = Replace(tmp2, "零万", "万零")
       tmp2 = Replace(tmp2, "零仟", "零")
       tmp2 = Replace(tmp2, "零佰", "零")
       tmp2 = Replace(tmp2, "零拾", "零")
       tmp2 = Replace(tmp2, "零元", "元")
       tmp2 = Replace(tmp2, "零零", "零")
       tmp2 = Replace(tmp2, "亿万", "亿")
   Next
   ''〓上面为非正式财务算法,可以去掉〓
   If Point = 1 Then tmp2 = "零元" + tmp2
   If Number < 0 Then tmp2 = "负" + tmp2
   If Point = 0 Then tmp2 = tmp2 + "整"
  CurrencyToStr = tmp2
End Function
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Cell 属性的使用:
Cell 的作用是给以选定区块的特定的设置值,具体值可参阅相应属性值。
语法:Cell(条件准则, Row1, Col1, Row2, Col2) = 相应准则值
其中的“条件准则”有以下准则常数,根据准则的不同而设置相应准则的值:
flexcpAlignment        对齐方式
flexcpBackColor        背景色
flexcpChecked          选择框
flexcpCustomFormat     格式设置
flexcpData             日期
flexcpFloodColor       颜色
flexcpFloodPercent     背景色
flexcpFont             字体
flexcpFontBold         粗体
flexcpFontItalic       斜体
flexcpFontName         字体名
flexcpFontSize         字体大小
flexcpFontStrikethru   删除线
flexcpFontUnderline    下划线
flexcpFontWidth        字符宽
flexcpForeColor        字符色
flexcpHeight           高
flexcpLeft             左
flexcpPicture          添加图
flexcpPictureAlignment 图对齐
flexcpRefresh          刷新
flexcpSort             分类
flexcpText             字符
flexcpTextDisplay      显示字符
flexcpTextStyle        文本样式
flexcpTop              返回顶端高,同 RowPos 和 ValueMatrix 属性
flexcpValue            返回字符值
flexcpVariantValue     返回字符值
flexcpWidth            返回单元宽flexSTSum 方法:每行增加小计行[这个方法还不会用]语法:
VSG.flexSTSum 常数名,
[GroupOn As Long], :标签列
[TotalOn As Long], :计算列
[Format As String], :格式,例 "$0.00"
[BackColor As Color], :Color
[ForeColor As Color], :Color
[FontBold As Boolean], :False|True
[Caption As String], :例 "数 %s"
[MatchFrom As Integer], :0|1|2|3
[TatalOnly As Boolean] :False|True
常数名:
常数            常数值  说明
flexSTNone      0       大纲唯一的,没有合计价值
flexSTClear     1       清除全部的小计
flexSTSum       2       总数
flexSTPercent   3       总数的百分比
flexSTCount     4       行数
flexSTAverage   5       平均
flexSTMax       6       最大的
flexSTMin       7       最小的
flexSTStd       8       标准偏差
flexSTVar       9       方差
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
MousePointer、MouseIcon 鼠标指针的应用:
0=flexDefault
1=flexArrow
2=flexCross
3=flexIBeam
4=flexIcon
5=flexSize
6=flexSizeNESW
7=flexSizeNS
8=flexSizeNWSE
9=flexSizeEW
10=flexUpArrow
11=flexHourglass
12=flexNoDrop
13=flexArrowHourGlass
14=flexArrowQuestion
15=flexSizeAll
50=flexPointerCopy  '(&H32) '拖动带拷贝
51=flexPointerMove  '(&H33) '拖动
52=flexSizeHorz  '(&H34) '左右调整
53=flexSizeVert  '(&H35) '上下调整
54=flexHand  '(&H36) 手型
99=flexCustom '自定义Const MA = "50,51,52,53,54"
Dim xy As Integer
xy = Val(Text1.Text)
If xy > 15 And xy <> 99 And InStr(MA, xy) = 0 Then xy = 15
VSG1.MousePointer = xy
If xy = 99 Then
   VSG1.MouseIcon = LoadPicture("C:\icon\Icon.ico")
End If
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
单击列头将列互相拖动调换:
方法一:
VSG1.ExplorerBar = flexExMove  '2 这是最简单的方法了
注意这个属性在VB属性表中只设置了0、1、2、3、5、7、8种常数值
ExplorerBar 属性(value=0|1|2|3|5|7|8):
  0-flexExNone:默认,单击列头选择整列,单击行头选择整行
  1-flexExSort:单击列头可正反排序该列,单击行头选择整行
  2-flexExMove:单击列头可交换列顺序,单击行头选择整行
  3-flexExSortAndMove:具有 1 和 2 的功能
  4:单击列头可正反排序该列并在列头显示相应箭头,单击行头选择整行
  5-flexExSortShow:好像与 4 相同也
  6:具有 2 和 4 的功能
  7-flexExSortShowAndMove:好像与 6 相同也
  8-flexExMoveRows:单击列头选择整列,可拖动行
  9:单击列头可正反排序该列,可拖动行
  10:可拖动行与列
  11:可排序列及拖动行列
  12:可排序列并在列头显示相应箭头,还可拖动行
  13:同 12。
  14:除 12 功能外,可拖动列
  15:同 14。
方法二:
Private Sub VSG1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  Dim r%, c%
  r = VSG1.MouseRow
  c = VSG1.MouseCol
  If r = 0 And c > 0 Then
      VSG1.Tag = c
      VSG1.Cell(flexcpBackColor, 0, c) = vbYellow
      VSG1.MousePointer = flexPointerMove
  End If
End SubPrivate Sub VSG1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  If Len(VSG1.Tag) Then
      Dim r%, c%, p%
      r = VSG1.MouseRow
      c = VSG1.MouseCol
      If r = 0 And c > 0 Then p = flexPointerMove
      If VSG1.MousePointer <> p Then VSG1.MousePointer = p
  End If
End SubPrivate Sub VSG1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  If Len(VSG1.Tag) Then
      Dim r%, c%, target%
      target = VSG1.Tag
      VSG1.Cell(flexcpBackColor, 0, target) = 0
      VSG1.Tag = ""
      VSG1.MousePointer = 0      r = VSG1.MouseRow
      c = VSG1.MouseCol
      If r = 0 And c > 0 And c <> target Then
          VSG1.ColPosition(target) = c
      End If
  End If
End Sub
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━