小编mou*_*ber的帖子

如何使用VBA中的CopyMemory存储数据并从内存映射文件中获取数据?

我正在尝试构建一个分布式计算系统,该系统使用内存映射文件通过VBA协调多个联网PC之间的工作.换句话说,我想让一组联网的计算机同时以协调的方式在一个项目上工作,这个项目可以很容易地分成不同的部分.一台PC需要13个多小时才能完成项目,这对我的客户来说并不实用.

我想将信息存储在内存映射文件中,以帮助PC以协调的方式处理项目(即不重复工作,避免竞争问题等).我已经尝试使用其他类型的文件来实现这一点,它会导致文件争用问题,或者它需要太长时间.所以,正如在这个论坛上所建议的那样,我正在尝试内存映射文件.

我是内存映射文件和分布式计算的新手.必须在VBA中完成.据我所知,我必须指定将文件保存在我们网络上的目录(这里是驱动器Z),所有PC都可以访问.我拼凑了来自不同地方的一些代码:

Option Explicit

Private Const PAGE_READWRITE As Long = &H4
Private Const FILE_MAP_WRITE As Long = &H2
Private Const GENERIC_READ = &H80000000
Private Const GENERIC_WRITE = &H40000000
Private Const OPEN_ALWAYS = 4
Private Const FILE_ATTRIBUTE_NORMAL = &H80

Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, _
                                         ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, _
                                         ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, _
                                         ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long …
Run Code Online (Sandbox Code Playgroud)

excel vba distributed-computing excel-vba memory-mapping

7
推荐指数
1
解决办法
4473
查看次数

使用bat文件:在现有(已打开)的Excel实例中打开Excel

我打开了一个 Excel 工作簿,并且想要一个 .bat 文件来在同一 Excel 实例中打开工作簿。我该怎么做?换句话说,Excel 工作簿已在一个 Excel 实例中打开,我想使用 .bat 文件脚本打开另一个工作簿,但我不想创建另一个 Excel 实例。两个工作簿应在同一个 Excel 实例中打开。

这是我现在正在做的事情,但不起作用:Excel工作簿1已经打开(手动),excel实例1(excel.exe)已经打开(手动)。在稍后的某个时间点,我的 .bat 文件开始通过任务计划程序运行。我的 .bat 文件代码如下所示:

REM open excel workbook
"C:\Program Files (x86)\Microsoft Office\Office14\Excel.exe" "Y:\somepath\somefilename.xlsm"
EXIT
Run Code Online (Sandbox Code Playgroud)

...并且 excel.exe 的实例 2 是在其中打开“somefilename”创建的,这是错误的。

我只需要一个 excel.exe 实例,并且在该实例中打开两个文件/工作簿,并且我必须使用 .bat 文件打开第二个文件(出于令人沮丧但必要的原因)。没有其他语言,请批量。谢谢!

excel batch-file

3
推荐指数
1
解决办法
7352
查看次数

如何使用vba创建一个ActiveX按钮并向其添加代码(告诉它运行什么子)?

我想在工作表中创建一个ActiveX按钮并为其分配代码(即告诉它要运行哪个子节点,并且该子节点已经存在).

我可以创建按钮:(已录制)

ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False _
    , DisplayAsIcon:=False, Left:=41395.5882352941, Top:=234.705882352941, _
    Width:=119.117647058824, Height:=39.7058823529412).Select
Run Code Online (Sandbox Code Playgroud)

但我想更改标题并为其分配一个子标题,以便当有人单击新创建的activex按钮时,它会运行一个已经存在于工作簿中要创建按钮的模块中的子文件.一切都在ThisWorkbook中发生并存在.

谢谢!

PS - 我不能使用命令按钮....我只能使用ActiveX

excel vba activex excel-vba

2
推荐指数
1
解决办法
1万
查看次数

获得50个州缩写

我正在尝试使用 html5lib 在具有可用列名的一列中获取 50 个状态缩写。

import pandas as pd
import html5lib
fiddy_states = pd.read_html('https://en.wikipedia.org/wiki/List_of_U.S._state_abbreviations')

fs = fiddy_states[0]
Run Code Online (Sandbox Code Playgroud)

在这里我无法更改列名:

fs.rename(columns={4:'abbv'},inplace=True)
Run Code Online (Sandbox Code Playgroud)

在这里,我只能得到我想要的行,但我仍在整理如何在没有可用列名的情况下获得第 4 列:

fs[11:]
Run Code Online (Sandbox Code Playgroud)

python python-3.x pandas

0
推荐指数
1
解决办法
887
查看次数

(abs(checksum(newid())) % 100 + 1) / 100(十进制)

如何转换abs(checksum(newid())) % 100 + 1 / 100为小数?

例如,如果abs(checksum(newid())) % 100 + 1生成的值为 98,我期望得到 0.98。

然后尝试只给出 1 或 0: ,cast(cast(abs(checksum(newid())) % 100 + 1 as decimal)/100 as decimal)

sql sql-server

0
推荐指数
1
解决办法
369
查看次数