这是自大约十年前在大学介绍C ++类以来我编写的第一本书,所以我希望这不是太基础,但是我已经坚持了很长时间了!
快速背景。我自己的工作簿中有一个“中央”建筑化学品信息数据库。每种化学品都有自己的一行,带有一些安全说明和指向PDF的超链接。我还设置了另一个工作簿,可以将其复制到我们服务器上的任何位置,并且仍然引用中央工作簿和PDF。该工作簿充当寄存器,化学药品在建筑工地时会迅速添加到列表中(从中央WB复制所有信息和PDF链接,并将PDF文件复制到与工作簿相同的文件夹中)。我被困在如何从现场删除化学品后如何从寄存器中删除那些条目。
理想情况下,这将删除行中的信息,将其他条目上移以填补空白,并从文件夹中删除PDF。我相信我可以做第二件事,但是我不知道如何通过单击几次来删除行。
我尝试使用VBA添加链接到行中的单元格并从那里开始的按钮或复选框,但是我遇到了很多问题,从无法正确放置它们到无法能够自动将它们链接到单元格。
Private Sub CommandButton1_Click() 'Copies SDS PDF to job folder
Dim fso As Object 'For moving file
Dim FileName As String 'Pdf file name
Dim Dest As String 'Job folder location
Dim RegRow As Integer 'First empty row in register
Dim Hyper As Range
Set CopyRange = Sheet3.Range("O4", "R4") 'From Vlookup on sheet 3 to add to register
If (Sheet1.Cells(5, 1) = "") Or (Sheet3.Cells(4, 9) = "") Then 'Checks for a match in vlookup on sheet 3
'and that something has been entered
MsgBox "Please select a product to add to the job register"
Exit Sub
ElseIf (Sheet1.Cells(18, 16) <> "OK") Then 'Checks for duplicates using Vlookup on sheet1 (hidden)
MsgBox "Product already added to register"
Exit Sub
Else
RegRow = Sheet1.Range("A999").End(xlUp).Row + 1 'Finds empty row
Set PasteRange = Sheet1.Range(Cells(RegRow, 1), Cells(RegRow, 4)) 'Assigns empty cells in register to variable
FileName = Sheet3.Range("E1").Text
Dest = Sheet3.Range("A1").Text
Hyper = Sheet1.Range(Cells(RegRow, 5))
Set fso = VBA.CreateObject("Scripting.FileSystemObject") 'Moves PDF
Call fso.CopyFile(FileName, Dest, True) 'Moves PDF
PasteRange.Value = CopyRange.Value 'Copies register info to front page
Sheet3.Range("S4").Copy
Sheet1.Cells(RegRow, 5).Select
Hyper.Paste
'Add checkbox to new entry
'Dim CheckBoxCell As Range
'CheckBoxCell = Sheet1.Range(Cells(RegRow, 6))
'Sheet1.OLEObjects.Add "Forms.CheckBox.1", Left:=CheckBoxCell.Left, Top:=CheckBoxCell.Top, Width:=CheckBoxCell.Width, Height:=CheckBoxCell.Height, _
' LinkedCell = Sheet1.Cells(RegRow, 16), Caption = "Select"
End If
End Sub
请原谅对Vlookup单元格的引用,这是我第一次尝试编写宏,因此我混合了一些技巧使其工作。
理想情况下,一些简单方法可以帮助您,或者为将要删除的行的复选框/按钮编写代码,其余的我想我都可以理解。