回到 vb6 和 msflexgrid,将文本粘贴到此控件有一个弱点。例如,如果用户想要在 msflexgrid 中粘贴一个 2*3 数组,他应该选择 2 行和 3 列来粘贴数据,否则只有一个单元格将填充 msflexgrid(插入 6 个单元格)。我发现如果我 colud 拆分剪贴板并计算它的行和列,这个问题应该解决(根据数组大小选择 msflexgrid 单元格)。我创建了“editpaste”SUB:
Private Sub EditPaste()
Dim ARRAYLINES As Variant ' array with the lines
Dim ARRAYCELLS As Variant ' array with the cells of 1 line to count the cols needed
Dim ARRAYLINESidx As Integer
'§ put clipboard in a textbox named "cliper"
With cliper
.Text = Clipboard.GetText
If .Text = "" Then
Exit Sub
Else
ARRAYLINES = Split(.Text, Chr(13)) 'i also used the Chr(10) vbnewline andvbCRLF to count the lines
End If
End With
'§ put textbox in grid
If ARRAYLINES(0) = "" Then
Exit Sub
Else
ARRAYCELLS = Split(ARRAYLINES(0), vbTab) 'to count the columns
msgbox UBound(ARRAYLINES) & UBound(ARRAYCELLS)
End If
'§ clear array
ReDim ARRAYLINES(0)
ReDim ARRAYCELLS(0)
End Sub
但我的问题是我有两种类型的文本数组(文本矩阵)。从 msflixgrid 到剪贴板的数组和从 Excell 到剪贴板的数组,我无法在该子目录中区分它们。下面是他们在 MSword 中的截图:
图片中的箭头 n 是 TAb 字符,我对它们进行计数没有问题,并且所有文本数组的结果都相同。但是段落符号很棘手,我知道在第二个数组中它们是“vbnewline”,但是在第一个数组中我的代码找不到它们并假设我只有一行。您是否知道在计算这些列和行时获得相同结果的更好方法?