为什么全局变量增加但不保存位置?

时间:2014-06-02 17:52:39

标签: vba global-variables excel-formula excel-2007 increment

我正在编写一个程序,该程序应该平均产品完成生产过程每个步骤所需的时间。我认为一切都按需要工作,但我发现了一个错误,需要一些帮助来解决它。

提示用户输入所需型号的数据,然后选择将其传输到其他工作表的提交按钮。转移后,工作表会保留所有输入内容的运行列表,这些列表可以对所有条目进行总计和平均。

所有公式都可以正常工作,数据(整数)会在输入时递增,但是,我遇到的问题是如果我关闭程序并将其打开,它会将增量位置重新设置为1并且如果我输入新数据,它会删除以前的条目。

我认为问题的根源在于我正在使用全局变量。这对我来说是新鲜的,并且对它们的运作方式没有最大的了解。

CODE:

' Set global variables to keep an ongoing count
Dim Count1, Count2, Count3 As Integer

' Create subroutine to copy and increment data from worksheet 1 to worksheet 2
Private Sub Transfer()

' Establish variable for CASE to search
Dim ModR As String

' Establish desired position to locate variable
ModR = Worksheets(1).Range("B3").Value

' Case that will search for model, copy hrs worked, and increment field
Select Case ModR
Case "MISC 1"
  Worksheets(1).Range("B4:B10").Copy
  Worksheets(2).Range("B372:B378").Offset(0, Count1).PasteSpecial
  Count1 = Count1 + 1

Case "MISC 2"
  Worksheets(1).Range("B4:B10").Copy
  Worksheets(2).Range("B381:B387").Offset(0, Count2).PasteSpecial
  Count2 = Count2 + 1

Case "MISC 3"
  Worksheets(1).Range("B4:B10").Copy
  Worksheets(2).Range("B390:B396").Offset(0, Count3).PasteSpecial
  Count3 = Count3 + 1

Case Else
  MsgBox "Wrong Model Entered / Model Does Not Exist"
  End Select
End Sub

Public Sub call_Transfer()
  Call Transfer
End Sub

我试过了:

Dim MISC 1 As Integer
Dim MISC 2 As Integer
Dim MISC 3 As Integer

MISC 1 = 0
MISC 2 = 0
MISC 3 = 0

但是,如果我这样做,数据将不会增加,而字段只会复制到位置1。

有什么建议吗?

由于

0 个答案:

没有答案