Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用VBA将某些记录添加到某些工作表_Vba_Excel - Fatal编程技术网

如何使用VBA将某些记录添加到某些工作表

如何使用VBA将某些记录添加到某些工作表,vba,excel,Vba,Excel,我编写了一个VBA用户表单,用计算机信息的记录填充excel表格。我还有4个不同的工作表,每个分支对应一个工作表,并在组合框中列出 我想知道是否可以编写一个if语句,将记录相应地放入正确的工作表中 我目前有一个If语句,它将插入到分支“SNN”中,但我想知道是否可以编写类似于下面的语句 If branch = worksheet name then insert the record into that worksheet. 这是我目前正在做的工作,但是有太多的分支需要为每个分支单独编写代码

我编写了一个VBA用户表单,用计算机信息的记录填充excel表格。我还有4个不同的工作表,每个分支对应一个工作表,并在组合框中列出

我想知道是否可以编写一个if语句,将记录相应地放入正确的工作表中

我目前有一个If语句,它将插入到分支“SNN”中,但我想知道是否可以编写类似于下面的语句

If branch = worksheet name then insert the record into that worksheet.
这是我目前正在做的工作,但是有太多的分支需要为每个分支单独编写代码

Private Sub submitBtn_Click()

Dim wsDub, wsORK, wsSNN, wsBFS As Worksheet
Set wsDub = ThisWorkbook.Sheets("DUB")
Set wsORK = ThisWorkbook.Sheets("ORK")
Set wsSNN = ThisWorkbook.Sheets("SNN")
Set wsBFS = ThisWorkbook.Sheets("BFS")

If newPcForm.cmbBranch.Value = "SNN" Then

mynr = wsSNN.Cells(Rows.Count, 1).End(xlUp).Row + 1

wsSNN.Cells(mynr, 1) = newPcForm.cmbBranch
wsSNN.Cells(mynr, 2) = newPcForm.pcname
wsSNN.Cells(mynr, 3) = newPcForm.cmbPcModel
wsSNN.Cells(mynr, 4) = newPcForm.cmbCPU
wsSNN.Cells(mynr, 5) = newPcForm.cmbDiskSpace
wsSNN.Cells(mynr, 6) = newPcForm.cmbRAM
wsSNN.Cells(mynr, 7) = newPcForm.cmbMonth + "-" + newPcForm.cmbYear
wsSNN.Cells(mynr, 8) = newPcForm.assetTag
wsSNN.Cells(mynr, 9) = newPcForm.serviceTag

End If


newPcForm.Hide

End Sub
这样做是可能的,还是更好的解决方案是将它们全部放在一起,并在标题上应用过滤器

非常感谢您的帮助。

绝对是一体式的。。。 我很高兴你认识到这是一种选择;有些人喜欢反对这一建议,因为坦率地说,改变是可怕的。消除重复总是最好的,在一个文档中包含所有内容有很多好处。(也许其他人会插话进来?)

在我看来,理想情况下,这将是将数据移动到MS Access的好时机,因为您正处于重新组织的过程中。您已经开始将其用作数据库,这可能会很好地工作,但您可以使用Access做更多的事情,更不用说它更适合多用户环境,并且与大型工作表相比更稳定。。。但如果不是这样的话,将所有数据放在一张表中将防止您不得不编写重复的代码,这可能会使您在将来进行更改或跟踪问题变得非常困难

如果出于某种原因,出于演示或交互的原因,您决定将数据放在单独的工作表上,那么仍然可以通过“假正面”类型的设置轻松完成,用户只会认为数据被拆分到多个工作表上,而实际上它被很好地组织到一个隐藏的工作表中——另外,在这种情况下,如果他们不小心弄乱了数据,什么也不会丢失