【问题标题】:Excel data import with restrictionsExcel 数据导入有限制
【发布时间】:2018-09-15 06:12:40
【问题描述】:

你好友好的人:)

背景信息:

我有一个 python 脚本,它创建一个临时 BI 报告,从 SQL 服务器收集各种数据并进行必要的计算。输出作为 .CSV 文件转储到公共驱动器上。

为了使输出更加用户友好,将 CSV 导入到具有各种格式的 Excel 电子表格中,以便于阅读。许多不同的用户都使用此电子表格,但不会同时使用。

问题在于,最终用户将在电子表格中键入各种输入,然后在下次运行 python 脚本时将这些输入考虑在内。一个例子可能是用“x”标记一行来表示“这个问题已经被处理了”,这样它就不会出现在下一个输出中。

如果用户在没有运行基础脚本的情况下从 csv 重新导入数据,就会出现问题。这有效地删除了所有让人们做双重工作的用户标记。

我知道这是一个可怕的设置,但它现在必须到期。在概念验证得到证明之前,企业不愿意将其集成到 ERP 系统中。

问题:

是否可以在 excel 中实施数据导入限制,即只有在文件时间戳是最近的情况下才能导入 CSV 文件,比如在过去一小时内?目前我只是使用标准的文本导入,它似乎没有这个功能。

我想制作一个 VBA 宏按钮会更容易,但我很少在 excel 中工作,我一点也不知道如何进行。

我正在想象一个用我自己的伪代码编写的按钮:

 Press button():
     if (datetime.now - time_stamp_csv_file) < 1 hour:
        import file
     else:
         do nothing

如果有人有任何可行的解决方案,我将是一个快乐的人。

【问题讨论】:

  • 不相信整个事情的方法.. 但就像你说的那样,这不是你的决定。但是,如果您想在工作表中添加一个按钮以便能够执行此操作,那么请在具有宏的工作表中搜索 按钮。有很多例子......这里有一个:extendoffice.com/documents/excel/…
  • 谢谢 Zac,也许我应该澄清一下我的操作水平。我知道如何插入一个宏按钮并找到其他人的代码放入其中,但是以任何方式修改该代码形状或形式 atm。超出了我的范围。诚实地。我真的不知道我在看什么。迄今为止,尝试将 if 语句重新安装到其他工作脚本中的尝试并不是很成功 :)

标签: excel vba csv import restrict


【解决方案1】:

我假设您已经有了导入文件的代码,并且只需要知道如何检查最后修改的时间戳。如果是这样的话,你应该可以使用这样的东西:

Sub ImportButton_Click()

    Dim oFSO As Object
    Dim oFile As Object

    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFile = oFSO.GetFile("C:\Test\Test.csv")            'Change this to your actual CSV file path

    If Now() - oFile.DateLastModified < TimeValue("01:00:00") Then
        'import file
    End If

End Sub

【讨论】:

  • 谢谢,它有效!我什至认为你的回答对我来说是关于基本 VBA 语法的点击:)
猜你喜欢
  • 2013-12-04
  • 1970-01-01
  • 1970-01-01
  • 2018-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-30
相关资源
最近更新 更多