检测 SharePoint 文件是否打开

2024-03-20

第一次在这里发帖,如果我偏离了任何指导方针,我深表歉意。

这是我的挑战:我有一个保存到 SharePoint 的状态跟踪文件。宏将打开此状态跟踪器,记录一些信息,保存并关闭文件。我试图包含一些代码来检测另一个用户是否打开了该状态文件,否​​则当宏看到无法保存更改时将会崩溃。我知道这不是一个非常优雅的系统,但现在就可以了!

下面的代码用于检测文件是否打开,但仅限于本地文件(例如保存到 C:\ 驱动器)。我无法让它对保存到 SharePoint 的文件起作用。我知道我的 SharePoint 文件路径是正确的,我可以使用“Workbooks.Open”操作打开该文件。当我尝试运行 SharePoint 文件的代码时,它总是返回该文件未被其他用户打开,即使它是。

我不想使用 SharePoint 的“签出”功能并已将其禁用。我的团队不太勤于检查事情。

非常感谢!

'**********Function to check if workbook is open**********
Function IsWorkBookOpen(strFileName As String)

    On Error Resume Next
    ' If the file is already opened by another process,
    ' and the specified type of access is not allowed,
    ' the Open operation fails and an error occurs.
    Open strFileName For Binary Access Read Write Lock Read Write As #1
    Close #1

    'If no error, file is not open.
    If Err.Number = 0 Then
        IsWorkBookOpen = False
        End If

    'Error #70 is another user has the file open in edit mode.
    If Err.Number = 70 Then
        IsWorkBookOpen = True
        End If

    'Error #75 is another user has the file open in read only mode.
    If Err.Number = 75 Then
        IsWorkBookOpen = False
        End If

End Function

'**********Running the actual code**********

Sub Button1_Click()

'Go into Status Sheet if it's not open. Otherwise skip it.
If IsWorkBookOpen("\\source.yadda.com\Top_Secret_File_Path\BCR Status Sheet.xlsm") Then
    MsgBox ("'BCR Status Sheet.xlsm' is open.")
    Else: MsgBox ("Open it up, do a bunch of stuff.")
End If

Workbooks.Open ("\\source.yadda.com\Top_Secret_File_Path\BCR Status Sheet.xlsm")

MsgBox ("Cruzin' along with rest of macro.")

End Sub

在工作中与这个问题斗争了 8 个多小时后,我找到了一个快速但肮脏的解决方案。它不是最好的,但经过大量研究,到目前为止是唯一合适的。这是我的代码:

“检测 SharePoint 文件是否被其他用户打开,如果是则打开文件,如果不是则关闭它”

Sub accessWorkbook()
    Dim url As String
    url = "mySharePointURL"

    MsgBox workbookOpen(url)
End Sub


Function workbookOpen(url As String) As Boolean
    'return false if file is not locked by another user
    workbookOpen = False


'open the workbook in read.only mode, so does no message is displyed when the file is use
Set wb = Workbooks.Open(url, False, True)
'change file access to ReadWrite without notifying if the file is locked by another user
On Error Resume Next
wb.ChangeFileAccess xlReadWrite, False, False

'if the file is locked, this will return "true"
workbookOpen = wb.ReadOnly

'if the file is locked, it wil lbe closed without no changes
If read.only = True Then
    wb.Close
End If

End Function
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检测 SharePoint 文件是否打开 的相关文章

  • VBA:访问 JSON

    我正在处理 VBA 投影 但不确定如何访问此 JSON 中的 id 应该将 players 设置为什么才能在循环中获取 id 我已经用更多代码更新了问题 JSON event games players id 182759 Code Pri
  • 更改索引设置访问 VBA

    我正在尝试自动化 Access 中的流程 我希望自动化的步骤之一是更改表中某些字段的索引设置 我需要这样做来提高后续查询的速度 使用索引查询速度大约快 100 倍 无论如何 假设我的表名为 Cars 如下所示 ID Name Charact
  • 自定义函数错误:“表达式不能在计算列中使用”

    在 Access 2010 中 我尝试在计算列中使用自定义 VBA 函数 我得到 表达式不能在计算列中使用 这是我的步骤 启动 Access 2010 创建一个新的数据库 DB 创建一个包含文本列 Column1 的表 Table1 在 C
  • MS Access VBA:通过 Outlook 发送电子邮件 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何使用 MS Access VBA 通过帐户发送电子邮件 我知道这个问题很模糊 但是很难在网上找到在某种程度上还没有过时的相关信息 编辑
  • VBA仅清除数据透视表缓存,但保留数据透视表结构

    如何使用VBA清除数据透视表缓存 但不破坏数据透视表结构 我的数据透视表已连接到外部数据源 SQL 源决定哪个用户应该查看数据的哪一部分 当表刷新时 源会填充该表 我想保存 Excel 文件并使用干净的数据透视表 内部没有数据 分发它 结果
  • 活动工作流程与运行工作流程

    本周末在伊利诺伊州莱尔举行的 SharePoint Saturday 活动上 Robert Bogue 表示活动工作流和正在运行的工作流之间存在差异 我在网上查了一下 有人能解释一下吗 如果服务器上可以有多达数百万个活动工作流程 为什么每台
  • 使用 PDFMAKER 将多封电子邮件保存为 pdf

    我是 VBA 的新手 但我用 SAS 编写了一些程序 用汇编程序 大型机和 PC Word Perfect 宏 编写了一些程序 用 Java HTML 和其他东西编写了一些程序 我所做的是 当我遇到问题并且我认为我可以对其进行编程时 我会在
  • 我想在 64 位模式下运行我的视觉工作室

    我正在 NET 3 5 中编写 Web 服务 在此我必须访问 SharePoint 2010 数据 但 SharePoint 需要我的应用程序使用 64 位模式 Visual Studio 默认处于 32 位模式 如何以 64 位运行 Vi
  • 拆分具有多行文本和单行文本的行

    我试图弄清楚如何拆分数据行 其中行中的 B C D 列包含多行 而其他列不包含多行 我已经弄清楚如何拆分多行单元格 如果我将这些列复制到新工作表中 手动插入行 然后运行下面的宏 仅适用于 A 列 但我在编码时迷失了休息 Here s wha
  • 需要在Excel中合并3列

    我有 3 列 A B C 我需要合并这 3 列 并且我已经应用了 forumala A1 B1 C1输出为 E 列 我需要输出为 D 列 下面的公式将达到您想要的结果 TEXTJOIN TRUE A1 C1 Textjoin 的工作方式类似
  • VBA 中的 VSTO:AddIn.Object 有时不返回任何内容 (null)

    Given VSTO 插件 An override object RequestComAddInAutomationService 它返回一个名为的类的实例Facade在我的场景中 Excel 2007 中的 VBA 宏可访问AddIn O
  • 具有多个条件(全部等于相同值)的 IF 语句的替代方案

    还有比这更好的方法吗 假设所有变量都为零 If var1 0 Or var2 0 Or var3 0 Or var4 0 Or var5 0 Or var6 0 Then do something End If 你可以用Select Cas
  • 如果 FIND 函数在 vba 中找不到任何内容,那么[重复]

    这个问题在这里已经有答案了 我目前正在自动化执行以下步骤的手动流程 1 提示用户打开一个数据文件并打开文件 2 插入4列 3 使用文件中已有的数据创建格式为 DD MM YYYY TEXT 的唯一字符串 其中文本是变量 4 使用 if 语句
  • 我需要代码在两行之间复制并粘贴到另一张表中,并给出任何值?

    例如 我有 50 行数据 第一行有学生的名字 我需要代码将数据从 RAM 复制到 RAMESH 在这之间我有 20 行 我需要代码来复制行并将其粘贴到另一张纸中 它不应该问我名字 默认情况下 它必须采用 RAM 和 RAMESH 名称 好的
  • For...VBA 中的下一个循环超出限制

    我正在使用一个For Next循环填充数组 如下所示 ReDim array 1 to 100 1 to 100 For i 1 to 100 Next i But the i计数器似乎总是转到 101 而不是停止在 100 因此 这会在我
  • Excel VBA 导出到文本文件。需要删除空行

    我有一个工作簿 使用以下脚本将其导出到文本文件 它工作正常 但是当我打开文本文件时 末尾总是有一个空行 这导致我在生成此文本文件后运行的另一个脚本出现问题 有关如何从导出中删除空行的任何帮助 Code Sub Rectangle1 Clic
  • 我可以用文本框设置变量名称吗? excel

    我可以使用 TextBox Vba Excel 设置变量的名称吗 我必须以在文本框中写入组名称并单击命令按钮的方式输入新的产品组 代码必须从文本框中获取字符串 并将该字符串设置为新创建的数组的名称 我只想在运行时创建一个新变量 或数组 据信
  • VBA 字符串 255 个字符限制

    我在使用 VBA 时遇到问题 并注意到它的字符串限制为 255 个字符 我实际上正在尝试通过 POST 发送 JSON 并暂停执行 我注意到该字符串始终只有 255 个字符 有没有办法调整字符串的大小或其他什么 我在这个问题上浪费了大约 6
  • 在组合框中显示可见工作表

    您好 我有以下代码来在组合框中显示工作表 创建工作表后 工作表会自动添加到列表中 我不希望隐藏的工作表在保管箱中可见 我怎么做 Option Explicit Private Sub ComboBox1 Change If ComboBox
  • 无法摆脱脚本中的硬编码延迟

    我用 vba 结合 selenium 编写了一个脚本来解析网页中可用的所有公司名称 该网页启用了延迟加载方法 因此每个滚动中只有 20 个链接可见 如果我滚动 2 次 则可见链接数为 40 个 依此类推 该网页中有 1000 个可用链接 我

随机推荐

  • 在 Haskell 中获取子列表

    可能很简单 但我浏览了文档并用谷歌搜索了示例 但我仍然不确定答案 如果我有一个这样的列表 1 2 3 4 5 6 7 8 9 0 我想提取一个切片 比如从索引 4 到索引 8 即我想要 5 6 7 8 9 在 Haskell 中执行此操作的
  • 定义一个大的vba字符串的最佳方法 - 即heredoc等效?

    我应该如何在VBA中定义大字符串 还有比下面这样的编码更好的方法吗 Dim largeString as String largeString This is a long block of text that I want to fill
  • 如何在 Swift 中对这个自定义 UITextField 进行单元测试?

    我创建了一个像这样的自定义 UITextField import Foundation import UIKit class NoZeroTextField UITextField UITextFieldDelegate required
  • 如何在 Angular 5 中为每个 HTTP 请求显示微调器?

    我是 Angular 5 的新手 如何编写一个通用函数来为 Angular 5 中的每个 HTTP 请求显示微调器 请帮我实现这个 您可以使用角度Http拦截器 https angular io api common http HttpIn
  • GStreamer Tee(多路复用器)

    我正在尝试将视频流 来自我的网络摄像头 存储到 MKV 和 FLV 文件中 这意味着我必须在 h264 编码后分割视频和音频管道 并使用不同的复用器复用每个路径 这就是我想象的它应该如何工作 gt queue gt matroskamux
  • 监听/处理 JPanel 事件

    先生们女士们晚上好 我有一个无法解决的 Java Swing 问题 也许你可以帮助我 这里是 我有一个使用 BorderLayout 的 JFrame 和许多 JPanel 每次我需要建立一个新屏幕 即从主菜单中 单击搜索按钮时 转到搜索菜
  • 什么是数组到指针的转换又名。衰变?

    什么是数组到指针的转换又名 衰变 和数组指针有关系吗 据说数组 衰变 成指针 C 数组声明为int numbers 5 不能被重新指向 即你不能说numbers 0x5a5aff23 更重要的是 衰变一词意味着类型和维度的损失 number
  • 使用 Ajax 的 Jquery 日期选择器无法正常工作

    我的网站有很多类别 每个类别页面都有自己的帖子 在这里我使用了 jQuery datepicker 如果用户想查看 8 月 20 日的帖子 他们可以单击日历上的特定日期并查看日期帖子 另一件事 如果我打开一个类别 则应该只显示今天的帖子 请
  • 我想使用 mpdf 在 PDF 中设置页眉和页脚

    我已经使用生成了 PDFmpdfCodeIgniter 中的库 我想附加带有适当边距的页眉图像和页脚图像 我创建了一个代码 但页眉和页脚重叠 controller this gt load gt library m pdf param A4
  • 从 C 中的 UTF8 字符串中删除变音符号

    我正在编写一个 C 程序来搜索数据库中的大量 UTF 8 字符串 其中一些字符串包含带教义的英文字符 例如重音符号等 搜索字符串是由用户输入的 因此很可能不包含此类字符 有没有一种方法 函数 库等 可以从字符串中删除这些字符 或者只是执行不
  • unicharset_extractor:找不到命令

    我想使用超正方体创建新的列车数据 因此 请按照以下网站中提到的步骤进行操作 https blog cedric ws how to train tesseract 301 https blog cedric ws how to train
  • Scriptom Groovy 格式化 Excel 示例

    我正在寻找一些 Groovy 对 Excel 文档执行基本格式化命令的示例 我还想知道在哪里可以找到这些命令的存储库 你会怎样 插入一行 将单元格格式设置为短日期 时间等 将整列或整行加粗 怎么样 POI 3 9 假设您有一个输入 XLS
  • JMESPath - 连接嵌套数组中的项目

    我有一个 JSON key processId 29231 fields attachment id 79572 filename File1 png id 74620 filename File2 docx id 79072 filena
  • WinForms中发生关闭事件时如何保存数据?

    我想要一个消息框来询问表单关闭事件上未保存的数据 如果用户选择 是 则将数据保存在文本文件中并退出应用程序 如果用户选择不保存而不退出应用程序 我尝试了以下代码 但它不会关闭应用程序并使消息框一次又一次出现 public void Save
  • 带有 upstart 和 syslog 的 Ubuntu docker 容器

    四处搜寻后 我仍然很困惑你是否可以拥有码头集装箱运行 Ubuntu 并运行初始化系统 暴发户 and syslog 或不 我知道 docker 容器是用于运行单个进程而不是完整的操作系统 但我的用例是在各种 Linux 发行版上测试守护进程
  • 打印同一行两个字符串之间的文本

    我已经搜索了很长时间 但未能找到解决我的问题的有效答案 我从 HTML 文件中提取了一行sed 162 d skinlist html 其中包含文本 a href skin dwarf red beard 734 title Dwarf R
  • python.exe:没有名为 pyuic5 的模块

    我想将 ui 文件转换为 py 但 pyuic5 无法识别 当我进入 python 目录时 会出现此错误消息 如何修复这个错误 更通用的选项是 python m PyQt5 uic pyuic filename ui o filename
  • SPFileVersionCollection - 为什么版本按混合顺序排序?

    SPFileVersionCollection 和 SPListItemVersionCollection 版本控制对我来说似乎不一致 不一致对我来说不是问题 但排序顺序是问题 SPListItemVersionCollection 我可以
  • 重命名变量时使用 numlist 循环

    我正在尝试使用 tidyverse dplyr 重命名 R 中的两种类型的变量 第一个类型 var a year 我想将其重命名为 sample year 第二种变量 var b 7 我想将其重命名为 index year 第二个变量 va
  • 检测 SharePoint 文件是否打开

    第一次在这里发帖 如果我偏离了任何指导方针 我深表歉意 这是我的挑战 我有一个保存到 SharePoint 的状态跟踪文件 宏将打开此状态跟踪器 记录一些信息 保存并关闭文件 我试图包含一些代码来检测另一个用户是否打开了该状态文件 否 则当