[算表] VBA执行问题

楼主: o1o3o1o31030 (主席)   2017-07-17 18:39:11
软件:EXCEL
版本:2013
各位版大好~
我写了一个销货单汇入清单的VB
奇怪的是
我从编译器内案执行一切顺利
但是在表单建立按钮连接VBA程式后
一直出现执行错误:型态不符合
重点是我用msgbox回变量型态都是double
第一次遇到这样
不知道有没有人知道什么
http://imgur.com/a/D1IU7
http://imgur.com/a/D1IU7
感谢
原档案 https://drive.google.com/file/d/0B5FM7x4Wx7AjcGhvWEJDSGFQT1k/view?usp=sharing
原文如下
Public Sub 汇入清单()
Application.ScreenUpdating = False
Dim r, m, i As Integer
r = Sheets("清单").Cells(66666, 2).End(xlUp).Row
m = WorksheetFunction.CountA(Sheets("销货单").Range("B6:B17")) + 1
'填入对应数量
With Sheets("清单")
.Unprotect
.Range(.Cells(r + 1, 1), .Cells(r + m, 1)) = Range("G1").Value - 1
.Range(.Cells(r + 1, 2), .Cells(r + m, 2)) = Range("C1")
.Range(.Cells(r + 1, 3), .Cells(r + m, 3)) = Range("C2")
.Range(.Cells(r + 1, 4), .Cells(r + m, 4)) = Range("C3")
Range(Cells(6, 2), Cells(6 + m - 2, 7)).Copy
.Range(.Cells(r + 1, 5), .Cells(r + m - 3, 10)).PasteSpecial
Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
.Cells(r + m, 5) = "折让"
On Error GoTo XX
.Cells(r + m, 9).Value = -Cells(3, 7)
XX: MsgBox TypeName(.Cells(r + m, 9).Value) & TypeName(-Cells(3, 7))
.Cells(r + m, 11) = Cells(2, 7)
With .Range(.Cells(r + m, 1), .Cells(r + m, 11)).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent6
.TintAndShade = 0.599993896298105
.PatternTintAndShade = 0
End With
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
'.EnableSelection = xlNoSelection
End With
Application.ScreenUpdating = True
End Sub
作者: soyoso (我是耀宗)   2017-07-17 19:06:00
测试原文的宏码配合表单建立按钮连接,并无出现该错误https://youtu.be/Wj3XyOMGwTA提供档案应会比较清楚
楼主: o1o3o1o31030 (主席)   2017-07-17 19:27:00
S大,你如果连续操作两次是否错误?S大我继站内给你
作者: soyoso (我是耀宗)   2017-07-17 19:34:00
操作两次上有出现"这里已经有资料,您要取代这笔资料吗?"的对话框,并无出现该错误
楼主: o1o3o1o31030 (主席)   2017-07-17 19:36:00
可能跟清单那页的设计有关,我站内S大了
作者: soyoso (我是耀宗)   2017-07-17 19:39:00
档案方面的连结可分享于该篇内,不限我回复原po
楼主: o1o3o1o31030 (主席)   2017-07-17 19:45:00
档案如内文! 感谢~
作者: soyoso (我是耀宗)   2017-07-17 19:47:00
-cells(3,7) 改为 -sheets("销货单").cells(3,7)小计部分同上加上sheets的部分
楼主: o1o3o1o31030 (主席)   2017-07-17 20:02:00
好了 感谢S大! 但是为何会这样,明明VB里直接按都行难道在编译器里执行和连接按钮执行监试有差异的?!

Links booklink

Contact Us: admin [ a t ] ucptt.com