天地有雪 发表于 2015-4-20 17:17

交练习了~好难!

笨的有点傻 发表于 2015-4-21 15:56

:(不会SQL 不会VBA:(

qh8600 发表于 2015-4-21 16:28


不会SQL,写了VBA的哈^:L

sry660 发表于 2015-4-21 18:26

SQL不会,憋了个笨办法~~~

轩辕轼轲 发表于 2015-4-22 10:13

本帖最后由 轩辕轼轲 于 2015-4-22 10:22 编辑

SQL语句支持支持最多48天的

byhdch 发表于 2015-4-22 13:22


hsl215 发表于 2015-4-22 17:16

先交了有时间再改吧!

橘子红 发表于 2015-4-22 18:14

=TEXT(INDEX(A:A,SMALL(IF(C$2:C$7>=COLUMN(A:Z),ROW($2:$7)),ROW(A1))),"e-m-d")

不信这样还重名 发表于 2015-4-22 21:47

Sub Lianxi2()
      Dim x As Long, y As Long, m As Long, k As Long
      Dim max_x As Long
      Dim arr, brr()
                max_x = ActiveSheet.Range("a65536").End(xlUp).Row
                arr = ActiveSheet.Range("a1").Resize(max_x, 3)
                For x = 2 To max_x
                        If arr(x, 3) > 1 Then
                              For y = 1 To arr(x, 3)
                                        k = k + 1
                                        ReDim Preserve brr(1 To 3, 1 To m + k)
                                                brr(1, m + k) = arr(x, 1)
                                                brr(2, m + k) = brr(1, m + k) + k - 1
                                                brr(3, m + k) = arr(x, 2) / arr(x, 3)
                              Next
                              m = m + k
                              k = 0
                        Else
                              m = m + 1
                              brr(1, m) = arr(x, 1)
                              brr(2, m) = arr(x, 1)
                              brr(3, m) = arr(x, 3)
                        End If
                Next
                With ActiveSheet.
                        .Offset(0, 0) = "预定日期"
                        .Offset(0, 1) = "使用日期"
                        .Offset(0, 2) = "金额"
                        .Offset(1).Resize(m, 3) = Application.Transpose(brr)
                End With
End Sub

fjhuang 发表于 2016-3-9 20:56

学习
页: 1 [2]
查看完整版本: 练习题