我将两个称重秤连接到我的PC,并使用VBA教程和XMComm创建Excel用户表单,从秤中收集重量数据并将其放在单元格中。
我可以使用单独的命令按钮从每个比例中检索重量。我想将两个音阶组合成一个命令按钮。
我试过在命令按钮中将ActiveCell.Offset(0,1).Select
放在两个Userforms之间。但是,当我使用此命令按钮时,活动单元格立即向右移动,并且只放置两个权重值中的一个。
我使用ActiveCell
将此信息放在任何单元格中。
我认为这可能是各个用户表单本身的问题。当我尝试从仅与一个用户形式绑定的命令按钮放置一个重量时,有时不会放置重量。
这是userform代码:
Private Sub XMCommCRC1_OnComm()
Static sInput As String
Dim sTerminator As String
Dim Buffer As Variant
' Branch according to the CommEvent property
Select Case XMCommCRC1.CommEvent
Case XMCOMM_EV_RECEIVE
Buffer = XMCommCRC1.InputData ' Use Input property for MSComm
sInput = sInput & Buffer
If Worksheets("Settings").Range("Terminator") = "CR/LF" Then
sTerminator = vbCrLf
Else
sTerminaotr = vbCr
End If
If Right$(sInput, Len(sTerminator)) = sTerminator Then
XMCommCRC1.PortOpen = False
sInput = Left$(sInput, Len(sInput) - Len(sTerminator))
Select Case Left$(sInput, 2)
Case "ST", "S "
ActiveCell.Value = CDbl(Mid$(sInput, 7, 8))
ActiveCell.Activate
Case "US", "SD"
MsgBox "The balance is unstable."
Case "OL", "SI"
MsgBox "The balance is showing an eror value."
End Select
sInput = ""
End If
End Select
End Sub
Public Sub RequestBalanceData()
With Worksheets("Settings")
' Configure and open the COM port
If Not XMCommCRC1.PortOpen Then
XMCommCRC1.RThreshold = 1
XMCommCRC1.RTSEnable = True
XMCommCRC1.CommPort = .Range("COM_Port")
XMCommCRC1.Settings = .Range("Baud_Rate") & "," & _
.Range("Parity") & "," & _
.Range("Data_Bits") & "," & _
.Range("Stop_Bits")
XMCommCRC1.PortOpen = True
End If
' Send balance's "SI" (Send Immediate) command
' to request weighing data immediately
If .Range("Terminator") = "CR/LF" Then
XMCommCRC1.Output = "R" & vbCrLf
Else
XMCommCRC1.Output = "R" & vbCr
End If
End With
End Sub
我正在使用Excel 2007.
VBA教程 - http://www.msclims.com/lims/diybalance.html
指向XMCOMM的链接 - http://www.hardandsoftware.net/xmcomm.htm