2011-04-19 85 views
3

如何區分兩個USB輸入設備,它們都將數據放入電子表格中?Excel - 如何擁有多個輸入設備(USB)

我有2個USB卡尺,輸入他們當前的測量值,就好像他們是擊鍵一樣。數據發送到excel(或任何真正的程序)並垂直放置。目前,Excel將兩個卡尺視爲同一臺儀器。

我想要的是兩個卡尺將他們的數據記錄到Excel電子表格的不同區域。

一個例子就是工具1和工具2都被兩個不同的人同時使用,同時連接到同一臺計算機。刀具1將始終將其數據放入以下區域:(A1,B1,C1,A2,B2,C2 ...等)刀具2將其數據記錄到以下區域:(A5,B5,C5,A6, B6,C6 ...等)數據不一定要放在同一張紙上,它可以放在不同的紙張上,也可以放在最簡單的紙張上。

任何人都可以幫忙嗎?


更新,包括最初提供作爲答案

的幾個問題內容:

1)我在哪裏可以找到適合 「Scripting.FileSystemObject的」 的信息?我假設這條線需要用每個單獨的USB工具的標識符替換。在設備管理器中,它們被列爲HID鍵盤,但我沒有看到識別號碼。

2)我只是將上面三組代碼複製粘貼到USB1的Sheet1下面的USB和USB2的Sheet2下面的VBA中,還是需要將它們放在單獨的宏中?

回答

0

一種方法是將源設置爲單獨的對象,將輸出圖紙設置爲對象。然後每個對象可以單獨處理或以您選擇的任何方式處理。

EG USB1應該有與USB2不同的文件路徑。同樣,每個工作簿可以是一個對象,每個片可以是對象的每個片內的範圍可以是對象

如USB1

Dim objFs1 As Object, objF1 As Object, objF1 As Object, objFc1 As Object 
Set objFs1 = CreateObject("Scripting.FileSystemObject") 
Set objF1 = objFs1.GetFolder(strFilePath) 
Set objFc1 = objF1.Files 

USB2

Dim objFs2 As Object, objF2 As Object, objF2 As Object, objFc2 As Object 
Set objFs2 = CreateObject("Scripting.FileSystemObject") 
Set objF2 = objFs2.GetFolder(strFilePath) 
Set objFc2 = objF2.Files 

不知道你怎麼想加載設置的USB對象,但一種可能性是使用類似文件對話框來選擇文件/文件夾

With Application.FileDialog(msoFileDialogOpen) 
.AllowMultiSelect = False 
.Show 

If .SelectedItems.Count = 0 Then 
    End 
End If 

For lngCount = 1 To .SelectedItems.Count 
    strEndofPath = InStrRev(.SelectedItems(lngCount), "\") 
    strFilePath = Left(.SelectedItems(lngCount), strEndofPath) 
    strFilename = Right(.SelectedItems(lngCount), Len(.SelectedItems(lngCount)) - strEndofPath) 
Next lngCount 
End With 

個爲Excel

Dim objWB1 As Workbook, objSheet1 As Worksheet, rngArea1 as Range 
Dim objWB2 As Workbook, objSheet2 As Worksheet, rngArea2 as Range 
+0

道歉 - 這只是一個示例方法來處理多個設備。 「Scripting.FileSystemObject」更適合於USB驅動器而非設備。您的設備是否提供支持或驅動程序?訪問和控制HID設備的功能包含在位於System32文件夾中的Windows hid.dll中 - 試試這個[Link](http://www.florian-leitner.de/index.php/category/usb -HID庫/#躲在級) – osknows 2011-04-20 18:36:13

1

對象寫入我假設你的USB設備,只需註冊成爲人機接口設備,並派出了他們輸出到當前處於焦點的任何應用程序。

如果是這樣的話,這不是微不足道的。 Windows會將所有鍵盤輸入合併爲一個輸入流,通常無法區分輸入來自哪個鍵盤(或類似鍵盤的設備)。

話雖這麼說,似乎是原始輸入API,讓你抓住每設備輸入:http://www.codeproject.com/KB/system/rawinput.aspx

從理論上講,你應該能夠對接在VBA這個API,但你必須決定,如果其值得努力。 更簡單的方法是使用兩臺電腦。