Excel精英培训网

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

[已解决][求助]谁帮我看看

[复制链接]
发表于 2010-3-8 20:07 | 显示全部楼层 |阅读模式

谁帮我看看,我的东西运算结果是对的,但必须是数据库里的第一行开始,(空一行都不行)还有不能查阅到数据库的A列第2串。

最好哪个大侠再帮我优化一下。

并说明一下错误的位置和为什么会成这样的效果

o9s5Lise.rar (20.66 KB, 下载次数: 20)

发表于 2010-3-8 20:11 | 显示全部楼层
回复

使用道具 举报

发表于 2010-3-8 20:37 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2010-3-8 20:40 | 显示全部楼层

我晕,我以为这么快就有人给回贴了
回复

使用道具 举报

发表于 2010-3-8 20:59 | 显示全部楼层    本楼为最佳答案   

就一个示例,代码中根本没考虑第二串的取值,当然没有了,要想加一行(第一行):

Private Sub 提取_Click()
Dim Xulie As String
    Dim n As Long
     Dim Y As Long
     Dim a
     Randomize
    n = 2
    Y = 5

    With Sheets("数据库")
      Xulie = Sheets("原始记录单").Cells(6, 2)

Ax:
  If Sheets("数据库").Cells(n, 1) = Xulie And Sheets("数据库").Cells(n, 3) = "" Then
  Sheets("原始记录单").Cells(Y, 4) = Sheets("数据库").Cells(n, 2)
   For YY = 5 To 24
   Sheets("原始记录单").Cells(Y, YY) = Sheets("数据库").Cells(2, 6)
   Next YY
   n = n + 1
   Y = Y + 1
GoTo Ax:
 End If
ac:
  If Sheets("数据库").Cells(n, 1) = Xulie And Sheets("数据库").Cells(n, 3) > 0 Then
  Sheets("原始记录单").Cells(Y, 4) = Sheets("数据库").Cells(n, 2)
     For YY = 5 To 14
      B = (Sheets("数据库").Cells(n, 4) - Sheets("数据库").Cells(n, 3)) * Rnd() * 0.98
     a = Format(Application.WorksheetFunction.Even(B * 100) / 100, "0.00")
    Sheets("原始记录单").Cells(Y, YY) = a + Sheets("数据库").Cells(n, 3)
  Next YY
      n = n + 1
   Y = Y + 1
   GoTo ac:
 End If
    End With

End Sub

回复

使用道具 举报

 楼主| 发表于 2010-3-8 21:10 | 显示全部楼层

这个还不能调出下面的信息

如:数据库里的 LG953A10 ,我的原意是在 原始记录单的 B6位置上输入 代码(任意一组完整的数据)就能在数据库里的A列中查找出来。并按后面的打印

现在的方式只有数据库里的最上一种(而却还要是第一行开始的)

我的意识就是在 原始记录单的 B6位置上输入 LG953A10 ,LG953A9.。。。。LG953E等等都可以查到

回复

使用道具 举报

 楼主| 发表于 2010-3-8 22:11 | 显示全部楼层

这样对了吧?

帮忙再帮我优化一下

谢谢

Private Sub 提取_Click()
Dim Xulie As String
    Dim n As Long
     Dim Y As Long
     Dim a
     Randomize
    n = 1
    Y = 5

    With Sheets("数据库")
      Xulie = Sheets("原始记录单").Cells(6, 2)
         Do While .Cells(n, 1) <> ""
     If .Cells(n, 1) = Xulie Then
     GoTo Ax:
                Exit Do
          End If
          n = n + 1
          Loop
       
Ax:
  If Sheets("数据库").Cells(n, 1) = Xulie And Sheets("数据库").Cells(n, 3) = "" Then
  Sheets("原始记录单").Cells(Y, 4) = Sheets("数据库").Cells(n, 2)
   For YY = 5 To 24
   Sheets("原始记录单").Cells(Y, YY) = Sheets("数据库").Cells(1, 6)
   Next YY
   n = n + 1
   Y = Y + 1
GoTo Ax:
 End If
ac:
  If Sheets("数据库").Cells(n, 1) = Xulie And Sheets("数据库").Cells(n, 3) > 0 Then
  Sheets("原始记录单").Cells(Y, 4) = Sheets("数据库").Cells(n, 2)
     For YY = 5 To 14
      B = (Sheets("数据库").Cells(n, 4) - Sheets("数据库").Cells(n, 3)) * Rnd() * 0.98
     a = Format(Application.WorksheetFunction.Even(B * 100) / 100, "0.00")
    Sheets("原始记录单").Cells(Y, YY) = a + Sheets("数据库").Cells(n, 3)
  Next YY
      n = n + 1
   Y = Y + 1
   GoTo ac:
 End If
    End With

End Sub

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 00:37 , Processed in 0.252577 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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