关于函数与二维数组

xiongchen 2004-04-07 12:08:12
Filter函数不知道大家用过没有?
它的第一个参数必须是一个一维的数组。
有没有方法可以让它可以接受一个二维数组,并在函数中返回一个一维数组。
...全文
99 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiongchen 2004-04-11
  • 打赏
  • 举报
回复
如果测试成功,就马上结贴!
supergreenbean 2004-04-07
  • 打赏
  • 举报
回复
把二维数组先转成1维的嘛
liyan010 2004-04-07
  • 打赏
  • 举报
回复
自己做一个函数啊~ 很容易
xiongchen 2004-04-07
  • 打赏
  • 举报
回复
没有人吗?
northwolves 2004-04-07
  • 打赏
  • 举报
回复
自定义一个:

Function myfilter(ByRef a() As String, filterstr As String)
Dim b() As String, c() As String, temp
ReDim b(UBound(a, 1))
ReDim c(UBound(a, 2))
For i = 0 To UBound(a, 1)
For j = 0 To UBound(a, 2)
c(j) = a(i, j)
Next
b(i) = Join(c, ",")
Next
myfilter = Filter(Split(Join(b, ","), ","), filterstr)
Erase b
Erase c
End Function

Private Sub Command1_Click()
Dim a(6, 9) As String
For i = 0 To 6
For j = 0 To 9
a(i, j) = i & j
Next
Next
MsgBox Join(myfilter(a, "2"), vbCrLf)
End Sub
supergreenbean 2004-04-07
  • 打赏
  • 举报
回复
Function two2one(two() As String, one() As String)
Dim i As Long, j As Long, u1 As Long, u2 As Long
u1 = UBound(two)
u2 = UBound(two, 2)
ReDim one((u1 + 1) * (u2 + 1) - 1)
For i = 0 To u1
For j = 0 To u2
one(i * u2 + j + i) = two(i, j)
Next
Next
End Function

Private Sub Form_Load()
Dim s1(1, 2) As String
Dim s2() As String
s1(0, 0) = "00"
s1(0, 1) = "01"
s1(0, 2) = "02"
s1(1, 0) = "11"
s1(1, 1) = "12"
s1(1, 2) = "13"
Debug.Print two2one(s1(), s2())
End Sub
xiongchen 2004-04-07
  • 打赏
  • 举报
回复
UP,讲详细一点啊。
xiongchen 2004-04-07
  • 打赏
  • 举报
回复
UP,讲详细一点啊。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧