在类模块中有
Private Enum colType
ID = "A"
SSN = "B"
lName = "H"
fName = "G"
End Enum
Run Code Online (Sandbox Code Playgroud)
作为私人会员.每当类初始化时,我都会收到 Compile Error:Type Mismatch消息.如果我宣布colType为Private Enum coltype As String.这会突出显示为红色错误,我收到编译错误:预期的语句结束消息.
在excel VBA中指定枚举元素的值是不允许的?
给定一个更高阶函数,它将多个函数作为参数,该函数如何将关键字参数传递给函数参数?
例
def eat(food='eggs', how_much=1):
print(food * how_much)
def parrot_is(state='dead'):
print("This parrot is %s." % state)
def skit(*lines, **kwargs):
for line in lines:
line(**kwargs)
skit(eat, parrot_is) # eggs \n This parrot is dead.
skit(eat, parrot_is, food='spam', how_much=50, state='an ex-parrot') # error
Run Code Online (Sandbox Code Playgroud)
state不是关键字arg,eat那么skit如何才能传递与其调用的函数相关的关键字args?
我有一个Sub,它从模板中插入一个标题并冻结活动工作表的顶行,该行被写为,
Sub HeaderInsert(headerTemplate As Worksheet)
headerTemplate.Rows("1:1").Copy
ActiveSheet.Rows("1:1").Select
ActiveSheet.Paste
With ActiveWindow
.SplitColumn = 0
.SplitRow = 1
.FreezePanes = True
End With
End Sub
Run Code Online (Sandbox Code Playgroud)
我想把它变成一个函数,它传递工作表插入标题.所以它会写,
Function HeaderInsert(headerTemplate As Worksheet, contentSheet as Worksheet)
Run Code Online (Sandbox Code Playgroud)
ActiveSheet变contentSheet,但我怎么能得到Window的contentSheet?
还有一种更好的方法来复制和粘贴吗?
什么时候应该而且不应该在python中预先分配列表?例如,我有一个带有2个列表的函数,并从中创建列表列表.很像,但不完全是矩阵乘法.我应该预先分配结果,
X = Len(M)
Y = Len(F)
B = [[None for y in range(Y)] for x in range(X)]
for x in range(X):
for y in range(Y):
B[x][y] = foo(M[x], F[y])
return B
Run Code Online (Sandbox Code Playgroud)
或者在我去的时候动态创建它?
B = []
for m in M:
B.append([])
for f in F:
B[-1].append(foo(m, f))
return B
Run Code Online (Sandbox Code Playgroud)
预分配似乎是不必要的,也许更慢,但动态地看起来是混淆的.特别是,B[-1].append(...)似乎难以辨认.
我在VBA中创建一个Immutable Linked List类.它提供ToArray和ToCollection方法,我已经验证了它的工作.但是该Get NewEnum() As IUnknown物业不起作用,我不知道为什么.
Public Property Get NewEnum() As IUnknown
Attribute NewEnum.VB_UserMemId = -4
Set NewEnum = ToCollection.[_NewEnum]
End Property
Run Code Online (Sandbox Code Playgroud)
通过下面的代码与步进sequence作为SList与调试器
Public Function Copy(ByVal sequence As Variant) As SList
Dim made As New SList
Dim element As Variant
For Each element In sequence
Set made = made.Cons(element)
Next
Set Copy = made.Reverse
End Function
Run Code Online (Sandbox Code Playgroud)
显示正确构建集合的For Each element In sequence调用Get NewEnum,然后Copy在不执行迭代且没有错误之后返回并退出循环.我唯一的猜测是它NewEnum是一个变量的迭代器,它在退出时被销毁 …
考虑excel中的以下vba宏
Sub foo()
Dim aRng As Range: Set aRng = ActiveSheet.Range("A1:J1")
Dim bRng As Range: Set bRng = ActiveSheet.Range("A4:J4")
Dim cRng As Range: Set cRng = ActiveSheet.Range("A10:J10")
Dim uRng As Range: Set uRng = Union(aRng, bRng, cRng)
uRng.Style = "Good"
uRng.Cells(2, 1).Style = "Bad"
End sub
Run Code Online (Sandbox Code Playgroud)
结果是:第1行"A1:J1", "A4:J4", "A10:J10"是好的,细胞"A2"是坏的.我预计细胞"A4"会很糟糕."A2"不在uRng; 为什么会被退回uRng.Cells(2,1)?
其他奇怪之处:uRng.Rows.Count = 1和uRng.Columns.Count = 10.我错了预期uRng3x10范围?或者是不确定的,因为的位置aRng,bRng …
给定MS Access VBA中的数据库对象,如何获取该数据库的VBProject?
Function GetVBProject(ByVal db As Database) As VBProject
Set GetVBProject = ???
End Function
Run Code Online (Sandbox Code Playgroud)
我知道如何在Access中获取VBProjects的唯一方法就是通过Application.VBE.VBProjects.Item(???).但是,我不知道项目的顺序是什么,名称是什么.我只会知道它的父数据库.Excel中的等价物很简单
Function GetVBProject(ByVal wb As Workbook) As VBProject
Set GetVBProject = wb.VBProject
End Function
Run Code Online (Sandbox Code Playgroud) 我正在尝试snowsql在我的计算机上本地工作,但无法登录我的数据库,因为它要求我使用我的 google 帐户进行 SSO 身份验证。文档说使用应该打开本地浏览器并要求我登录的--authenticator externalbrowser选项,但这并没有发生,什么也没有发生。
例子:
$ snowsql -o log_level=DEBUG -a <account> -u <gmail> --authenticator externalbrowser
Initiating login request with your identity provider. A browser window should have opened for you to complete the login. If you can't see it, check existing browser windows, or your OS settings. Press CTRL+C to abort and try again...
Run Code Online (Sandbox Code Playgroud)
没有打开浏览器窗口。按下CTRL+C不会中止snowsql;我必须运行 pkill 来杀死它。我的最后一个日志显示
2021-06-17 14:48:12,211 (222954/MainThread) snowflake.connector.network DEBUG network:940 - SUCCESS
2021-06-17 14:48:12,212 (222954/MainThread) snowflake.connector.network DEBUG …Run Code Online (Sandbox Code Playgroud) 在尝试定义类似python的Any()函数时,我发现我无法将任何名称命名为"Any".
尝试命名Function,Sub,Const或变量any将引发语法错误,VBA IDE将突出显示它.
我知道任何不是一个特别好的名字,但为什么它会抛出语法错误?我能想到的唯一原因是它可能是一个保留的关键字,但事实并非如此.
一个 gradle 任务可以依赖于另一个任务的失败吗?
例如,我有一个在浏览器中打开测试报告的辅助任务。我希望报告仅在任务“测试”失败时出现,而不是像现在这样在所有测试都通过时出现。
task viewTestReport(dependsOn: 'test') << {
def testReport = project.testReportDir.toString() + "/index.html"
"powershell ii \"$testReport\"".execute()
}
Run Code Online (Sandbox Code Playgroud) vba ×6
excel ×4
excel-vba ×4
python ×2
access-vba ×1
allocation ×1
enums ×1
function ×1
gradle ×1
kwargs ×1
list ×1
ms-access ×1
obfuscation ×1
snowflake-cloud-data-platform ×1
vbe ×1