小编Har*_*nch的帖子

字典,集合和数组的比较

我试图找出字典与集合和数组相比的相对优势和特性.

我在这里找到了一篇优秀的文章,但找不到比较所有各种功能的简单表格.

有谁知道吗?

excel vba excel-vba access-vba

20
推荐指数
3
解决办法
3万
查看次数

如何创建超链接到onedrive文件或文件夹而不与任何人共享 - 然后使用它

(创建超链接后,我将在OneNote中使用它链接到我自己的Onedrive上的文件,仅供我使用!)

当我在Word中查看文件时,显示的URL是:

https://onedrive.live.com/view.aspx?cid=53B31F7A44698440&resid=53B31F7A44698440%2130033&app=Word

假设我想在网站或OneNote页面中插入文件的链接,这样就不会与任何人共享.即只有我有权查看它,就像上面链接的文件引用一样.

我可以简单地使用上面的URL作为链接吗?

我使用过OneDrive共享,但我认为所有给出的方法都会导致文件与其他已命名的人共享或公开共享.比如这个:

http://1drv.ms/1zOli6p

...在在线查看时显示此URL:

https://onedrive.live.com/view.aspx?cid=53B31F7A44698440&resid=53B31F7A44698440%2130035&app=Word

我一直在尝试和使用URL似乎工作.但是,如果上述方法确实有效,那么我不知道OneNote不允许为存储在Ondrive上的文件创建链接.(在我的电脑上,它似乎允许链接到本地​​存储的文件).

我使用了GoogleDrive,它允许您选择一个文件并右键单击它以"接收链接",您可以按照上述方式使用该链接.这是一个非常有用的功能.

请注意,以类似的方式,我想创建一个链接,使onedrive打开并显示所选的文件夹.当我使用这个只有我有权查看的URL时,这似乎工作正常:

https://onedrive.live.com/?cid=53B31F7A44698440&id=53B31F7A44698440%2130031

任何建议都非常感谢.

哈维

onedrive

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

IsNull,IsEmpty,= Empty和空字符串即""之间有什么不同,为什么我可以使用变体

我试图了解Null是什么以及Empty变量是什么.它们是一样的吗?空字符串如何适应?

创建MS Access表时,为什么字段有"允许零长度字符串"选项?

我一直在努力将Access数据库中的数据加载到变量中(例如使用DAO或ADO),我发现自己必须声明我使用Variant的所有变量.这对我来说似乎是错的.

有没有人有任何好的示例代码来演示这些差异如何,你能解释为什么我可能会使用变体.

任何人都可以建议.

(我已经发布了自己的答案,其中包含许多简单的示例代码,这些代码对我有所帮助.它显示了很多函数如何与变体一起工作,我希望有类似困难的人发现这很有用)

excel vba excel-vba access-vba

4
推荐指数
2
解决办法
7758
查看次数

当一个单元中的一个函数"解析"多次包含对同一函数的相同调用时,excel是多么聪明

考虑一下:Cell C1有一个多次调用另一个函数的公式:

例如 =ExcelFuntionA(ExcelFunctionCallB(1), ExcelFunctionCallB(1)-1, ExcelFunctionCallB(1)-2, ExcelFunctionCallB(1)*3)

请注意,传递给的参数ExcelFunctionCallB每次都具有相同的值.

如果ExcelFunctionCallB(..)是涉及重要处理的函数,如果ExcelFunctionCallB(..)在花药细胞中发现结果并且上述公式被改变为参考该细胞4次,那么将更好地处理该公式.

例如

说A2有公式 ExcelFunctionCallB(..) C1然后读 =ExcelFuntionA(A2, A2-1, A2-2, A2*3)

我想知道excel是多么聪明!

  1. 可以看到呼叫是相同的,只处理一次对该功能的调用吗?

  2. 对于数组公式以及普通函数公式来说,它是否足够智能?

  3. 如果你调用一个用VBA编写的函数,它是如何工作的?
    承诺VBA函数可以直接引用未作为参数传递的单元格(我知道这很顽皮,但它发生了,即使与它一起使用的参数,它也可能返回不同的值的可能性很小是相同的.)

从上面开始,有没有办法告诉代码VBA函数不能直接访问任何excel单元格?(有点像application.volatile我想象的那样)

一个更现实的例子:我实际上一直在尝试这样的公式:

=MID($A2, FIND("@",SUBSTITUTE("#" & $A2 & "#","#","@",B$1)), FIND("@",SUBSTITUTE("#" & $A2 & "#","#","@",B$1+1)) - FIND("@",SUBSTITUTE("#" & $A2 & "#","#","@",B$1)) - 1 )

在SO 24182334/splitting-text-columns的未批准答案之一中提出了很好的记录

请注意,此公式使用文本FIND("@",SUBSTITUTE("#" & $A2 & "#","#","@",B$1))三次.

[PS.我知道有关VBA中的拆分和文本到列菜单选项.]

excel vba worksheet-function excel-vba

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

你能帮我理解更多关于VBA错误处理的良好实践吗?

我花了最近两天试图更好地理解VBA错误处理,但仍然存在实际问题.下面的文字描述了我所做的一些实现,并且在描述中嵌入了一些问题.我真的在追求人们帮助我提高理解力并给我一些指导.我已经掌握了常用的基础知识,并且我正在尝试更多地关注细微的功能.

我期待你的任何答案!

重要的是要意识到在VBA中发生错误时会发生两种截然不同的事情.

  1. 错误对象是instanciated并设置了它的属性(即err.number,err.desciption,err.source等)

  2. 要执行的下一行发生变化.
    接下来执行哪一行由最后执行的"On Error Goto"语句确定 - 如果有的话.

这些是独立但高度相关的主题,您将编写实际上不同但交织在一起的代码来管理它们.

当发生任何错误或您使用Err.Raise时,始终设置Err对象.即使使用了"On Error Resume next"或任何其他On错误语句.

所以这样的代码总是可以使用:

Dim i as integer 
On error resume next 
i = 100/0  ' raises error
if err.number <> 0 then 
   ' respond to the error
end if
Run Code Online (Sandbox Code Playgroud)

非常重要的是要意识到当错误对象的err.number值为非零时,会引发异常,如果您尝试执行任何"On Error Goto"语句,那么这样做会引发错误并执行被传递给任何调用当前过程的代码.(或任何代码未调用的程序通常的VBA错误对话).因此,在下面的示例场景中,"On Error Goto ALabel1"不会将下一行更改为Label1:上面的行.

例如

Sub ErrorTest()

    Dim dblValue        As Double

    On Error GoTo ErrHandler1
    dblValue = 1 / 0

ErrHandler1:
    debug.print "Exception Caught"
    debug.print Err.Number

    On Error GoTo ALabel1    
    dblValue = 1 / 0   '' …
Run Code Online (Sandbox Code Playgroud)

error-handling excel vba excel-vba

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