小编che*_*eak的帖子

Excel VBA - 设置枚举元素的值

在类模块中有

Private Enum colType
    ID = "A"
    SSN = "B"
    lName = "H"
    fName = "G"
End Enum
Run Code Online (Sandbox Code Playgroud)

作为私人会员.每当类初始化时,我都会收到 Compile Error:Type Mismatch消息.如果我宣布colTypePrivate Enum coltype As String.这会突出显示为红色错误,我收到编译错误:预期的语句结束消息.

在excel VBA中指定枚举元素的值是不允许的?

excel enums vba excel-vba

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

为不同的功能分离**kwargs

给定一个更高阶函数,它将多个函数作为参数,该函数如何将关键字参数传递给函数参数?

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?

python function kwargs keyword-argument

11
推荐指数
2
解决办法
2230
查看次数

Excel VBA - 获取工作表的父窗口

我有一个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)

ActiveSheetcontentSheet,但我怎么能得到WindowcontentSheet

还有一种更好的方法来复制和粘贴吗?

excel vba excel-vba

9
推荐指数
1
解决办法
5558
查看次数

预分配或不预先在Python中预分配列表

什么时候应该而且不应该在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(...)似乎难以辨认.

python obfuscation allocation list

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

无法在VBA中创建新枚举

我在VBA中创建一个Immutable Linked List类.它提供ToArrayToCollection方法,我已经验证了它的工作.但是该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是一个变量的迭代器,它在退出时被销毁 …

vba

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

Excel VBA - 范围联盟及其子范围

考虑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 = 1uRng.Columns.Count = 10.我错了预期uRng3x10范围?或者是不确定的,因为的位置aRng,bRng …

excel vba excel-vba

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

获取数据库的VBProject

给定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)

ms-access vba access-vba vbe

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

为什么 Snowsql 不打开外部浏览器?

我正在尝试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)

snowflake-cloud-data-platform

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

为什么我不能在VBA中使用"Any"作为名称?

在尝试定义类似python的Any()函数时,我发现我无法将任何名称命名为"Any".

尝试命名Function,Sub,Const或变量any将引发语法错误,VBA IDE将突出显示它.

我知道任何不是一个特别好的名字,但为什么它会抛出语法错误?我能想到的唯一原因是它可能是一个保留的关键字,但事实并非如此.

excel vba excel-vba

5
推荐指数
1
解决办法
1161
查看次数

依赖于失败的 Gradle 任务

一个 gradle 任务可以依赖于另一个任务的失败吗?

例如,我有一个在浏览器中打开测试报告的辅助任务。我希望报告仅在任务“测试”失败时出现,而不是像现在这样在所有测试都通过时出现。

task viewTestReport(dependsOn: 'test') << {
    def testReport = project.testReportDir.toString() + "/index.html"
    "powershell ii \"$testReport\"".execute()
}
Run Code Online (Sandbox Code Playgroud)

gradle

5
推荐指数
1
解决办法
3763
查看次数