求助有关excel vba

xiaoqiang0604 2011-05-24 12:42:41
Private Sub CommandButton1_Click()
Dim iFind As Range
Dim a As Integer '工作表的数目
Dim b As Double '暂存元件数量差值= 库存量 - 需求量
For a = 2 To Worksheets.Count Step 1
i = 5
Set BranchName = Worksheets(1).Range("A:A") '查询
Do While Worksheets(a).Cells(i, 2).Text <> ""
Set iFind = BranchName.Find(Worksheets(a).Cells(i, 2).Text)
If a = 2 Then

If Not iFind Is Nothing Then
TargetRow = iFind.Row
'MsgBox (Worksheets(1).Cells(TargetRow, 10).Value)
Worksheets(a).Cells(i, 8).Value = Worksheets(1).Cells(TargetRow, 10).Value
Else
Worksheets(a).Cells(i, 8).Value = ""
End If
b = Worksheets(1).Cells(TargetRow, 10).Value - Worksheets(a).Cells(i, 9).Value '求差
If b > 0 Then
Worksheets(1).Cells(i, 12).Value = b
Else
Worksheets(1).Cells(i, 12).Value = ""
End If
Else
If Not iFind Is Nothing Then
TargetRow = iFind.Row
'MsgBox (Worksheets(1).Cells(TargetRow, 10).Value)
Worksheets(a).Cells(i, 8).Value = Worksheets(1).Cells(TargetRow, 12).Value
Else
Worksheets(a).Cells(i, 8).Value = ""
End If
b = Worksheets(1).Cells(TargetRow, 12).Value - Worksheets(a).Cells(i, 9).Value '求差
If b > 0 Then
Worksheets(1).Cells(i, 12).Value = b '不能执行????
Else
Worksheets(1).Cells(i, 12).Value = ""
End If

End If
i = i + 1
Loop
Next a
End Sub



其中b = Worksheets(1).Cells(TargetRow, 12).Value - Worksheets(a).Cells(i, 9).Value '求差
If b > 0 Then
Worksheets(1).Cells(i, 12).Value = b '不能执行????
Else
Worksheets(1).Cells(i, 12).Value = ""
End If

他总是跳过Worksheets(1).Cells(i, 12).Value = b ,是不是他不能判断正负值啊?顺便在帮我看看整个程序还有啥问题?
还望多多批评指正
...全文
82 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
单步调试啊,设置个断点,看看求差以后b的值。
程序写的不太规范,也不好说其他地方有什么问题。
xiaoqiang0604 2011-05-24
  • 打赏
  • 举报
回复
谢谢各位大侠,用你们的方法我搞定它了,是我太大意了,嘿嘿。。。。
simon__sun 2011-05-24
  • 打赏
  • 举报
回复
如下加几个MSGBOX 看看具体值在析一下问题在那
msgbox  Worksheets(1).Cells(TargetRow, 12).Value 
msgbox Worksheets(a).Cells(i, 9).Value
b = Worksheets(1).Cells(TargetRow, 12).Value - Worksheets(a).Cells(i, 9).Value '求差
msgbox b
If b > 0 Then
booksoon 2011-05-24
  • 打赏
  • 举报
回复
[Quote=引用楼主 xiaoqiang0604 的回复:]
Private Sub CommandButton1_Click()
Dim iFind As Range
Dim a As Integer '工作表的数目
Dim b As Double '暂存元件数量差值= 库存量 - 需求量
For a = 2 To Worksheets.Count Step 1
i = 5
Set BranchName = Worksheets(1).R……
[/Quote]
跳过就说明b>0这个条件不满足
啊的发哦 2011-05-24
  • 打赏
  • 举报
回复
那就先从调试开始吧
xiaoqiang0604 2011-05-24
  • 打赏
  • 举报
回复
怎样是规范呢
xiaoqiang0604 2011-05-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 choasrules 的回复:]
单步调试啊,设置个断点,看看求差以后b的值。
程序写的不太规范,也不好说其他地方有什么问题。
[/Quote]嘿嘿,,,我还没有入门呢,谢谢

2,503

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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