Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2100|回复: 4

[已解决]VBa有一个数组A,含有数值2,3,6,8,9,12,14,19,插入一个数值10

[复制链接]
发表于 2016-3-1 10:16 | 显示全部楼层 |阅读模式
VBa有一个数组A,含有数值2,3,6,8,9,12,14,19,插入一个数值10

1,假设数组从1开始,

2,把原来数组元素输出

3,可选择数组位置插入一个数10

4,把插入一个数后的数组元素输出


最佳答案
2016-3-1 10:56
  1. Sub 插入元素()
  2.     Dim A, B&, C, W%, i%, s$
  3.     A = [{2,3,6,8,9,12,14,19}]
  4.     C = A
  5.     B = 10 '插入元素
  6.     W = 5 '指定位置,任意指定
  7.     ReDim Preserve A(UBound(A))
  8.     For i = UBound(A) To W Step -1
  9.     A(i) = A(i - 1)
  10.     Next
  11.     A(i) = B
  12.         MsgBox "数组元素列表:" & vbCrLf & Join(C) & vbCrLf & "所要插入的元素为:" _
  13.         & B & vbCrLf & "插入位置:" & W & vbCrLf & "插入后数组:" & vbCrLf & Join(A)
  14. End Sub
复制代码
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-3-1 10:54 | 显示全部楼层
  1. Sub tt()
  2.     brr = Array(2, 3, 6, 8, 9, 12, 14, 19)
  3.     L = UBound(brr) + 1
  4.     ReDim arr(1 To L)
  5.     For i = 1 To L
  6.         arr(i) = brr(i - 1)
  7.     Next
  8.     x = 10
  9.     p = Application.WorksheetFunction.Match(x, arr, 1)
  10.     ReDim Preserve arr(1 To L + 1)
  11.     For j = L To p + 1 Step -1
  12.         arr(j + 1) = arr(j)
  13.     Next
  14.     arr(j + 1) = x
  15.     MsgBox "插入前数组:" & Join(brr, ",") & Chr(13) & "插入后数组:" & Join(arr, ",")
  16. End Sub
复制代码
回复

使用道具 举报

发表于 2016-3-1 10:55 | 显示全部楼层
其中第9句p为插入位置,可自选。
回复

使用道具 举报

发表于 2016-3-1 10:56 | 显示全部楼层    本楼为最佳答案   
  1. Sub 插入元素()
  2.     Dim A, B&, C, W%, i%, s$
  3.     A = [{2,3,6,8,9,12,14,19}]
  4.     C = A
  5.     B = 10 '插入元素
  6.     W = 5 '指定位置,任意指定
  7.     ReDim Preserve A(UBound(A))
  8.     For i = UBound(A) To W Step -1
  9.     A(i) = A(i - 1)
  10.     Next
  11.     A(i) = B
  12.         MsgBox "数组元素列表:" & vbCrLf & Join(C) & vbCrLf & "所要插入的元素为:" _
  13.         & B & vbCrLf & "插入位置:" & W & vbCrLf & "插入后数组:" & vbCrLf & Join(A)
  14. End Sub
复制代码

评分

参与人数 1 +6 收起 理由
vbyou127 + 6 来学习了

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2016-3-1 14:06 | 显示全部楼层
本帖最后由 vbyou127 于 2016-3-1 14:08 编辑

Option Base 1

Private Sub Command1_Click()
  Dim a
  a = Array(2, 3, 6, 8, 9, 12, 14, 19)
  Print "原来的数组:"
  For i = 1 To UBound(a)
    Print a(i);
  Next i
  Print: Print
  ReDim Preserve a(UBound(a) + 1)
  n = CInt(InputBox("请输入要插入数的位置:"))
  Print "要把10插入到第" & n & "个位置"
  i = UBound(a)
  While i > n
    a(i) = a(i - 1)
    i = i - 1
  Wend
  a(i) = 10
  Print "插入后的数组:"
  For i = 1 To UBound(a)
    Print a(i);
  Next i
  Print
End Sub

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-1 23:24 , Processed in 0.282385 second(s), 16 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表