我需要一些帮助。
我有一个输入工作簿,用于输入产品数据,还有一个输出工作簿(报告),其中使用 vba 宏将所述数据复制到一行中。
问题是我需要在同一网络上的两台不同计算机上使用此应用程序。我希望两台计算机都使用独立的输入工作簿,并能够将输入数据复制到单个输出工作簿(报告)上。
换句话说,我想在两台计算机之间同步这个输出工作簿,这样它就可以显示两台计算机输入的数据。
这有可能吗?我对此很陌生,我甚至不知道从哪里开始,所以欢迎任何建议或意见。提前谢谢。
编辑:这是我设法编写的代码。考虑到我是编码新手,哈哈,我确信它并不完美,但它运行良好。
Sub GrabarAbono()
Dim NumAnticipo As Long
Dim Fecha As Date
Dim Cedula As Long
Dim Nombre As String
Dim Total As Double
Dim UltimaFila As Long
Dim Anticipos As Range
Set Anticipos = Worksheets("Anticipo").Range("A7", Range("C6").End(xlDown))
UltimaFila = Worksheets("Reporte Ant.").Range("A" & Rows.Count).End(xlUp).Row
NumAnticipo = Worksheets("Anticipo").Range("B1").Value
Fecha = Worksheets("Anticipo").Range("B2").Value
Cedula = Worksheets("Anticipo").Range("B3").Value
Nombre = Worksheets("Anticipo").Range("B4").Value
Total = Worksheets("Anticipo").Range("C" & Rows.Count).End(xlUp).Value
'Imprimir
Worksheets("Anticipo").PrintOut Preview:=True
'Transferir Datos
Anticipos.Copy (Worksheets("Reporte Ant.").Range("E" & Rows.Count).End(xlUp).Offset(1))
Worksheets("Reporte Ant.").Activate
Range("E" & UltimaFila).Offset(1).Select
Do Until ActiveCell.Value = ""
Worksheets("Reporte Ant.").Range("A" & Rows.Count).End(xlUp).Offset(1) = NumAnticipo
Worksheets("Reporte Ant.").Range("B" & Rows.Count).End(xlUp).Offset(1) = Fecha
Worksheets("Reporte Ant.").Range("C" & Rows.Count).End(xlUp).Offset(1) = Cedula
Worksheets("Reporte Ant.").Range("D" & Rows.Count).End(xlUp).Offset(1) = Nombre
ActiveCell.Offset(1).Select
Loop
'Protect
Worksheets("Anticipo").Protect
End Sub
答案1
要使用独立的输入工作簿并能够通过同一网络将输入数据复制到单个输出工作簿(报告),请执行以下操作:
选项1:
- 使文件夹可共享并将输入工作簿存储在那里。
- 编辑您的 VB 代码并添加此行以打开 WB。
Workbooks.Open Filename:="DriveLetter:\Path\Filename.xlsm"
- 此代码必须跟在其余程序行之后。
选项 2:
创建此宏并存储为标准模块:
Private Sub RunfromServer()
Dim wb As Workbook
Dim MyFile As String
Dim MyPath As String
MyPath = MyPath = "\\MYServer\ShareFolder\My Folder\"
MyFile = Dir("Filename.Xlsm")
Do While MyFile <> ""
Set wb = Workbooks.Open(MyPath & MyFile)
*Your code here*
wb.Close SaveChanges:=True
MyFile = Dir
Loop
End Sub
- 制作所需数量的 VBA(宏)副本并从不同的计算机运行它。