我的工作簿有一些非常隐藏的工作表 ( xlSheetVeryHidden),因为我不希望最终用户看到这些工作表中的信息。
\n但是,令我惊讶的是,使用这种方法非常弱,因为任何最终用户都可以从另一个工作簿运行以下代码并查看主文件上的所有隐藏工作表。
Sub make_visible()\n \nDim wb As Workbook: Set wb = Workbooks("Test") \xe2\x80\x98name of the main file\nDim sh As Worksheet\n For Each sh In wb.Sheets\n sh.Visible = xlSheetVisible\nNext\n \nEnd Sub\nRun Code Online (Sandbox Code Playgroud)\n因此,我需要隔离我的工作簿,并防止在其他工作簿上找到的任何宏影响我的主工作簿。
\n感谢所有有用的评论和对此安全问题的回答。
\n另外,我锁定了我的 vba 项目,我使用了类似的方法,如 Unviewable+
我正在使用下面的代码:
Delete the similar rows, keeping only one and combine cells values in the range "N", separated by vbLf
它可以工作,但是对于大范围(例如 30,000 行),宏需要很长时间才能完成。
调试代码后,我发现使用union导致宏需要很长时间才能完成。
Set rngDel = Union(rngDel, ws.Range("A" & i + m))
Run Code Online (Sandbox Code Playgroud)
因此,使用下面的代码,如何采用更快的方法来删除除使用联合之外的该范围的行?
提前感谢任何有用的评论和答案。
Sub DeleteSimilarRows_combine_Last_Column_N()
Dim LastRow As Long, ws As Worksheet, arrWork, rngDel As Range, i As Long, j As Long, k As Long
Dim strVal As String, m As Long
Set ws = ActiveSheet: LastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
arrWork = ws.Range("A1:A" & LastRow).Value2 'Place the …Run Code Online (Sandbox Code Playgroud) 我使用下面的代码来修改TextToDisplay一万个单元格列的超链接。
\n它可以工作,但代码需要大约 10 秒才能完成(在高端 PC 上)。
\n我正在寻找一种更快的方法来完成这项任务。
\n我尝试将所有超链接放在一个数组上,但代码出现以下错误
Dim rng As Range\n Set rng = ws.Range("N2", ws.Cells(Rows.Count, "N").End(xlUp))\n Dim arr\n arr = rng.Hyperlinks \xe2\x80\x98Run-time error 450: Wrong number of arguments or invalid property assignment\nRun Code Online (Sandbox Code Playgroud)\n这是工作代码,但速度很慢。
\n我也尝试过关闭screenupdating,但没有什么区别。
\n提前感谢任何有用的评论和答案。
\n
Option Explicit\nOption Compare Text\nSub Replace_Hyperlinks_TextToDisplay_Q()\n \n Dim ws As Worksheet: Set ws = ActiveSheet\n Dim LastRow As Long\n LastRow = ws.Range("O" & Rows.Count).End(xlUp).Row\n \n Const str1 As String = "http://xxxxx/"\n Const str2 As String = …Run Code Online (Sandbox Code Playgroud)