我不知道VBA,我只是在出於必要的情況下才這麼做,所以原諒我。我通常只是做T-SQL。命令按鈕中的VBA代碼在按鈕單擊時不起作用
我在幫助文章中發現了以下代碼,可以從Excel工作表中獲取數據並將其輸出到將用於運行Scribe的txt文件中。至今;
- 我已經放置在紙張上的命令按鈕
- 我右點擊查看代碼
- 我從文章到VBA編輯器粘貼代碼,並適應它的部分我的需求(基本上是文件路徑)
當我從編輯器運行代碼時,它表現完美。
當我關閉編輯器並單擊工作表上的按鈕時,它會運行,但生成的文本文件只是文本文件中空字符串的適當數量。就像它可以看到具有數據的行數,但不是單元格中的實際數據。
我錯過了一些明顯的東西嗎?在幫助文章中我看不到任何更多內容(這不是真正寫給完全新手的我不得不說),它可以解決問題!
Sub CommandButton1_Click()
Dim FilePath As String
Dim rng As Range
Dim CellData As String
Dim LastCol As Long
Dim LastRow As Long
LastCol = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column
LastRow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
Set rng = Worksheets("Discount Template").Range("B3")
FilePath = "\\SERVER2012\IT Dept\AccessSupplyChain\Product Discount Uploads\" & rng.Value & "_" & Format(Now(), "yyyymmdd hhmmss") & ".txt"
Open FilePath For Output As #2
For i = 1 To LastRow
For j = 1 To LastCol
If j = LastCol Then
CellData = CellData + Trim(ActiveCell(i, j).Value)
Else
CellData = CellData + Trim(ActiveCell(i, j).Value) + ","
End If
Next j
Print #2, CellData
CellData = ""
Next i
Close #2
MsgBox ("Done")
End Sub
是在同一張紙上的數據的按鈕?你的代碼使用'ActiveSheet'來查找'LastCol'等,但之後再引用''Discount Template''。如果該按鈕與數據不在同一張紙上,則不會使用此方法查看數據。 – CLR
在'Sub CommandButton1_Click()'中放置了一個斷點,看它是否被調用 –
只要我能夠使用的代碼'Set rng = Worksheets(「Discount Template」)。Range(「B3」)'從名爲「折扣模板」的第一張表中獲取客戶參考號。那個變量沒有被用在腳本的任何其他部分,因爲那是我從另一個解決方案中取得的。 rng變量不是我提到的問題幫助文章的一部分。我已經評論了這一行代碼,並從文件路徑中刪除它的使用,但沒有改變任何東西。 –