我不知道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变量不是我提到的问题帮助文章的一部分。我已经评论了这一行代码,并从文件路径中删除它的使用,但没有改变任何东西。 –