我编写了一个VBA宏,它尝试从用户表单中的文本框中获取值,并将它们复制到特定工作表上的单元格中。我还编写了一个countA函数,每次按下输入按钮时都可以写入一个新行。由于我无法理解的原因,无论我参考哪张表,它都只会写入活动工作表。请帮助!
Private Sub inputlight_Click()
Dim emptyrow As Long
'Find the first empty row after row 47 on sheet "T5 Input Sheet"
emptyrow = 47 + WorksheetFunction.CountA(Sheets("T5 Input Sheet").Range("b48:b219")) + 1
'transfer data
Cells(emptyrow, 2).Value = esize.Value
Cells(emptyrow, 3).Value = etype.Value
Cells(emptyrow, 4).Value = ewatt.Value
Cells(emptyrow, 5).Value = elamps.Value
Cells(emptyrow, 6).Value = eusage.Value
Cells(emptyrow, 7).Value = efixtures.Value
End Sub
我已经尝试将其更改为CountA(工作表(“T5输入表”),(表格(2)),(表格(“Sheet2”)等),但它们都不会打印到除活动单元格之外的任何内容。我做错了吗?
答案 0 :(得分:0)
您使用CountA
函数采用正确的方法,但是您还需要限定单元格以便将值粘贴到特定工作表。
Private Sub inputlight_Click()
Dim emptyrow As Long
'Find the first empty row after row 47 on sheet "T5 Input Sheet"
emptyrow = 47 + WorksheetFunction.CountA(Sheets("T5 Input Sheet").Range("b48:b219")) + 1
'transfer data
With Sheets("SHEET_NAME")
.Cells(emptyrow, 2).Value = esize.Value
.Cells(emptyrow, 3).Value = etype.Value
.Cells(emptyrow, 4).Value = ewatt.Value
.Cells(emptyrow, 5).Value = elamps.Value
.Cells(emptyrow, 6).Value = eusage.Value
.Cells(emptyrow, 7).Value = efixtures.Value
End With
End Sub
所以说SHEET_NAME
就是你坚持目的地工作表名称的地方。