其要求是使用Excel保护带有密码的工作簿的VBA项目。
这个是可能的吗?
目前,我们有一个Excel外接程序(xlam),它对打开的每个工作簿执行所有操作。我们通过外接程序实现了工作表的锁定.现在,我们还想保护那些打开的工作簿的VBA。下面是我们从各个论坛找到的代码
With Application
'execute the controls to lock the project
.VBE.CommandBars("Menu Bar").Controls("Tools") _
.Controls("VBAProject Pro
我真的需要一些帮助。近一个月来,我一直在寻找解决方案(不是不断地),但我找不到办法让它发挥作用。
首先,我必须打开工作簿的代码,它工作得非常好:
Private Sub OpenExcelDatabase()
Dim oxl As Object
Set oxl = CreateObject("Excel.Application")
Dim xlPath As String
xlPath = "OSX:Users:" & GetUserName.GetUserName & ":Documents:Rech
当我意外地运行VBA代码多次将数据从一个工作簿复制/粘贴到目标工作簿时,它将在目标工作表中创建多个具有相同数据的行。
我希望VBA代码识别前一行是相同的,以防止数据重复。
此外,我的VBA代码将把公式复制到目标Excel文件中。
我只想复制值,而不是公式。我不知道如何在我的VBA代码中使用PasteSpecial。
Sub Copy_Paste_Below_Last_Cell()
Dim wsDest As Worksheet
Dim lDestLastRow As Long
Set wsDest = Workbooks("Destin
我想将单元格的值和格式(文本颜色、字体大小、粗体等)从一个工作簿拉入/复制到另一个工作簿。
据我所知,使用标准的单元格引用是行不通的,你需要vba。
下面是一些在同一个工作表中将格式从a3复制到a10的vba代码:
Dim ping As Boolean
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("A3")) Is Nothing Then
If ping = False Then
Range("A3").Copy
Range(&
我的工作簿有一些非常隐藏的工作表(xlSheetVeryHidden),因为我不希望最终用户看到这个工作表中的信息。
但是,我感到惊讶的是,使用这种方法非常薄弱,因为任何最终用户都可以从另一个工作簿运行下面的代码,并在主文件中看到所有隐藏的工作表。
Sub make_visible()
Dim wb As Workbook: Set wb = Workbooks("Test") ‘name of the main file
Dim sh As Worksheet
For Each sh In wb.Sheets
sh.Visible = xlSheetVisible
我在Excel中使用的工作簿有一些受保护的单元格。我无法解锁它们。我需要将数据从一个被锁定的列传输到另一个也被锁定的列。我可以手动输入数据,但是工作簿将不允许我在受保护的列中复制/粘贴数据(无论是使用VBA还是正常方式)。下面是我尝试过的代码示例,没有任何结果。
如果不打开工作簿,这甚至是可能的吗?
示例1:
Sub Requote()
Dim JDsheet As Worksheet
Set JDsheet = ActiveWorkbook.ActiveSheet
JDsheet.Range("Q26:R41").Copy JDsheet.Range("S26:T
我在一个项目中编写了将数据从工作表读取到记录集中的代码。VBA代码受密码保护。
为了测试,我简化了代码,如下所示:
Option Explicit
Sub sTest()
Dim dbtmp As DAO.Database
Set dbtmp = OpenDatabase(Application.ActiveWorkbook.FullName, False, True, _
"Excel 8.0;HDR=Yes")
dbtmp.Close
Set dbtmp = Nothing
End Sub
每当我从用户表单运行此代码时,在关
我对VBA非常陌生,我想知道如何只复制工作表的白细胞,并将它们粘贴到相同的位置,但是粘贴到另一本工作簿上。
具体来说,我有两个带有多个工作表的工作簿,它们是相同的,但是源工作簿有一些空白单元格,而目标工作簿中这些单元格是空的。我希望将这些值从源白细胞传输到目标白细胞。如果可能的话,我想用"0“填充空白的白格。
我找到了一些代码,可以将所有颜色的单元格复制到另一个excel工作表中,但它们不会转移到另一个工作簿和确切的位置。
Sub CopyHighlightedTransactions()
Dim TransIDField As Range
Dim TransIDCell As Ra
在“模块”窗口中创建一个工作簿并写入宏之后,宏会被分配给一个按钮。通过单击“查看”>“保护共享工作簿”来保护工作簿将使该工作簿的整个VBA项目“不可见”,确切的错误消息是"Project is Unviewable“。此外,“条件格式”按钮是灰色的。
取消对工作簿的保护,并使用"allow changes by one or more...“选项共享工作簿。勾选不起作用。
宏仍然有效,但我希望能够解决“项目不可见”的问题。
我有一个启用宏的工作簿,其中包含多个模块,每个模块包含许多宏。我的问题是,当我从“开发人员”选项卡打开宏列表时,我的工作簿中再也没有宏了。当我打开VBA时,我仍然看到它们在那里,并在树中与工作簿/项目相关联。宏仍然在模块中。 背景:今天,在对其中一个宏进行了一些编辑之后,我关闭了VBA,看到一个项目正在被重置的提示,我点击了ok。问题开始了。工作簿中的所有宏过去都会显示在“开发人员”选项卡上的宏提示中。 Project/Workbook tree with associated modules containing macros; no macros showing in workbook