我创建了一个foo在我的电子表格中调用的模块,然后我添加了以下内容:
Function foo() As Variant
foo = 5
End Function
Run Code Online (Sandbox Code Playgroud)
当我尝试在Excel中运行该函数时,通过键入=foo()单元格,我得到了#NAME.当我#NAME通过点击旁边的小图标来查看应该是什么意思,然后help on this error我得到这个:
嗯,不完全是这样,但它一样有用.
最终我发现将模块名称更改为其他内容foo似乎可以修复它.我偶然发现了一个错误或功能吗?这种行为记录在哪里?
我正在尝试将凭据嵌入到我的 SQL Server 2008R2 数据库上的帐户的 Excel 2016 工作簿中,该帐户对某些存储过程具有执行权限,以向最终用户提供只读数据。用户帐户本身无权访问数据库,其想法是将此只读帐户的凭据嵌入到 Excel 电子表格中,用户只需单击“全部刷新”即可获取从存储过程返回的最新数据.
澄清一下,我不在乎用户是否知道帐户的密码 - 这不是问题。我只是不想让他们不得不输入密码来刷新数据。
这是我迄今为止在 Excel 中尝试过的:
我不认为我会在这里输入任何内容,因为我在构建查询字符串时已经输入了凭据,但我还是输入了,因为似乎需要输入某些内容。我将 Excel 文件交给另一个用户,并且肯定拒绝了足够的访问,因为它默认使用他们当前的 Windows 登录来访问数据库。
是什么赋予了?我有一个同事有一个 Excel 2010 文件,他们可以进入并编辑连接字符串属性而不会出现问题,并且他们的文件可以工作。我怎样才能让它在 Excel 2016 中工作?
我真的很感激你们能提供的任何帮助!
编辑:这个问题似乎并不遥远..有谁知道如何做到这一点?我觉得应该很简单。
基本上,问题总结如下图。
“开始”列是当“描述符”变量开始时,它根据从“开始”列开始的“长度”列中的值填充行数。
在像示例这样的小数据集上使用值解决这个问题很简单,但是如何使用公式复制它?
谢谢,
我想使用这个库来处理剪贴板.我希望在下面的屏幕截图中看到它,但我在参考库列表中找不到它.我尝试将VBA表单添加到我的excel项目中但没有成功.我该如何让它出现?
我的整个计算机W7和Excel 2016上没有FM20.DLL文件.我通过探索和使用findcygwin进行了搜索.
我有一张包含一堆数据的表格。然后我有一个不同的工作表,它引用了第一张工作表中的多个单元格。如果我想删除第一个工作表并将其替换为相同的工作表(在任何意义上都相同,即工作表名称、每个单元格中的数据类型、格式等,除了每个单元格中的实际文本数据),其他工作表丢失了,我所有的单元格都会产生#REF!错误。
有没有办法保留引用并替换或覆盖工作表,而无需手动剪切和粘贴信息?
预先感谢,
乔治
我在使用 ODBC 从 Excel 2016 连接到 PostgreSQL 数据库时遇到问题。
我试图遵循这个答案,但没有成功,而这个来自 MS 的解决方案,没有任何更好的结果......
有人在这方面成功过吗?我看到Excel 2016 在 ODBC 驱动程序方面存在一些问题,但那就像一年前一样,所以我想知道现在情况是否会更好?
感谢您的帮助。
我正在尝试刷新单元格更改的查询,但我无法弄清楚如何引用查询.
我的代码: Sheets("Roster Query").QueryTables(0).Refresh
只是错误:
运行时错误'1004':
应用程序定义或对象定义的错误
我有一个名为"名册过滤器"的工作表,其中包含我要刷新的查询表.如何获取QueryTable并刷新它?
编辑:还试过:
For Each qt In Sheets("Roster Query").QueryTables
qt.Refresh
Next
Run Code Online (Sandbox Code Playgroud)
这不会出错,但查询不会刷新.
我似乎找不到返回正在使用的内存或可用内存的VBA命令.在Excel 2013中有Application.MemoryUsed但是当我在Excel 2016中尝试时,我得到"类型不匹配",无论我使用
dim myVar as variant
myvar = Application.MemoryUsed
Run Code Online (Sandbox Code Playgroud)
要么
MsgBox CStr(Application.MemoryUsed)
Run Code Online (Sandbox Code Playgroud)
这可能是一件简单的事情.要么?
我有一个更新表单"LoadingInterface"的函数.该函数如下所示:
Private Sub updateLoadingBar(Optional tekst As String, Optional barOnePerc As Long, Optional barTwoPerc As Long)
If Not IsMissing(tekst) Then
LoadingInterface.Label1.Caption = tekst
End If
If Not IsMissing(barOnePerc) Then
LoadingInterface.Bar.Width = barOnePerc * 1.68
LoadingInterface.prosent.Caption = barOnePerc & "%"
LoadingInterface.prosent.Left = barOnePerc * 1.68 / 2 - 6
End If
If Not IsMissing(barTwoPerc) Then
LoadingInterface.SubBar.Width = barTwoPerc * 1.68
End If
LoadingInterface.Repaint
End Sub
Run Code Online (Sandbox Code Playgroud)
然后我调用这样的函数,期望它只更新文本字段,因为缺少其他两个参数.
Call updateLoadingBar(tekst:="Test")
Run Code Online (Sandbox Code Playgroud)
这适用于更新Label1,但不幸的是其他两个值也被更新 - 似乎不包括函数调用中的任何值使得VBA假设两个变量值为0.而且,似乎IsMissing函数没有检测到调用函数时两个值都缺失,这是一个更大的问题.使用F8逐步执行代码确认确实输入了所有if语句.
有没有什么办法让代码跳过我的函数两个最下面的if语句,如果提供的参数没有值barOnePerc和barTwoPerc?
excel-2016 ×10
excel ×9
vba ×6
excel-vba ×5
sql ×2
forms ×1
odbc ×1
postgresql ×1
windows-7 ×1