Excel精英培训网

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

[已解决]程式码问题

[复制链接]
发表于 2022-9-16 14:53 | 显示全部楼层 |阅读模式
本帖最后由 lkk0063 于 2022-9-16 14:55 编辑

程式码问题
当 "In" 复制资料到 "Out",会多出 "BG" & "BH"栏位数值, 该如何删除?

1.jpg
最佳答案
2022-9-16 18:20
估计是这样的吧?
Private Sub CommandButton2_Click()
    ...............
    For i = 0 To UBound(Arr) - 1

        '*******************************************************************************
        If i >= UBound(Arr) - 2 Then
            For S = 4 To 5: Brr(1, K * 5 + S) = Arr(i + 1, 2 + S): Next S
            For S = 6 To 7: Brr(1, K * 5 + S) = Arr(i + 2, S): Next S
            Exit For

            '*******************************************************************************

        Else
            For j = 5 To 9: Brr(1, i * 5 + (j - 1)) = Arr(i + 1, j + 1): Next j
        End If
        K = K + 1
    Next i
    ...............
End Sub

A.zip

40.92 KB, 下载次数: 2

发表于 2022-9-16 17:53 | 显示全部楼层
你是否发现标题:“I" 的数据也变化了,是你要求的吗?
回复

使用道具 举报

发表于 2022-9-16 18:20 | 显示全部楼层    本楼为最佳答案   
估计是这样的吧?
Private Sub CommandButton2_Click()
    ...............
    For i = 0 To UBound(Arr) - 1

        '*******************************************************************************
        If i >= UBound(Arr) - 2 Then
            For S = 4 To 5: Brr(1, K * 5 + S) = Arr(i + 1, 2 + S): Next S
            For S = 6 To 7: Brr(1, K * 5 + S) = Arr(i + 2, S): Next S
            Exit For

            '*******************************************************************************

        Else
            For j = 5 To 9: Brr(1, i * 5 + (j - 1)) = Arr(i + 1, j + 1): Next j
        End If
        K = K + 1
    Next i
    ...............
End Sub
回复

使用道具 举报

 楼主| 发表于 2022-9-21 12:00 | 显示全部楼层
zjdh 发表于 2022-9-16 18:20
估计是这样的吧?
Private Sub CommandButton2_Click()
    ...............


你好
看不明白为什么以下两行对应至 BB6 ~ BE6,是否能说明一下, 谢谢


For S = 4 To 5: Brr(1, K * 5 + S) = Arr(i + 1, 2 + S): Next S


For S = 6 To 7: Brr(1, K * 5 + S) = Arr(i + 2, S): Next S

  1. rivate Sub CommandButton2_Click()
  2.     ...............
  3.     For i = 0 To UBound(Arr) - 1

  4.         '*******************************************************************************
  5.         If i >= UBound(Arr) - 2 Then
  6.             For S = 4 To 5: Brr(1, K * 5 + S) = Arr(i + 1, 2 + S): Next S
  7.             For S = 6 To 7: Brr(1, K * 5 + S) = Arr(i + 2, S): Next S
  8.             Exit For
  9.             '*******************************************************************************

  10.         Else
  11.             For j = 5 To 9: Brr(1, i * 5 + (j - 1)) = Arr(i + 1, j + 1): Next j
  12.         End If
  13.         K = K + 1
  14.     Next i
  15.     ...............
  16. End Sub
复制代码


回复

使用道具 举报

发表于 2022-9-22 18:01 | 显示全部楼层
本帖最后由 zjdh 于 2022-9-22 18:04 编辑

原始数据总共是12行运行到 i >= UBound(Arr) - 2 时 K = 10,则
K * 5=50 ,Brr中前3位是 日期等,则第4列开始为原始数据,则此时Brr(1,53)已有数据,
接下来应该从第54列增加数据,所以应该是K * 5 + S=54到55,同理下一行K * 5 + S=56到57,
尔54列到57列就对应于BB~BE列。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 04:42 , Processed in 0.696467 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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