小编Fox*_*rns的帖子

从 Excel 2019 中的 url 下载文件(它适用于 Excel 2007)

我有一个代码可以从需要凭据的网站下载 CSV 文件。感谢这个网站,我得到了一个代码,我可以适应我的需求。我的相关代码部分是:

Option Explicit

Private Declare Function URLDownloadToFileA Lib "urlmon" _
    (ByVal pCaller As Long, _
    ByVal szURL As String, _
    ByVal szFileName As String, _
    ByVal dwReserved As Long, _
    ByVal lpfnCB As Long) As Long

Private Function DownloadUrlFile(URL As String, LocalFilename As String) As Boolean
    Dim RetVal As Long
    RetVal = URLDownloadToFileA(0, URL, LocalFilename, 0, 0)
    If RetVal = 0 Then DownloadUrlFile = True
End Function

Sub DESCARGAR_CSV_DATOS()

Dim EstaURL As String
Dim EsteCSV As String

EstaURL …
Run Code Online (Sandbox Code Playgroud)

excel vba

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

试图从 Twitter 的 GET 请求中获取 ResponseText

我正在努力提高我对 VBA 的了解,学习 GET、POST 和其他东西,因为我看过很多例子,但无法理解我做错了什么。可能是 Oauth 部分。

主要问题是我只是一个 Excel 人。我不是网络开发人员,所以我的知识几乎为零,而且可能我错过了很多基本的东西。

我希望这个问题不要太宽泛。

背景:我正在尝试从推文中获取 JSON 对象的 ResponseText。信息是公开的,您无需登录即可查看我想获取的信息,也不需要 Twitter 帐户。

为了测试,我正在使用这条推文:https : //twitter.com/StackOverflow/status/1273391252357201922

我想要什么:使用开发人员工具检查代码(我使用的是 Firefox),我已经看到了:

在此处输入图片说明

此 GET 请求返回此 ResponseText: 在此处输入图片说明

所以我想将该 ResponseText 放入 VBA。

我的代码:在这里检查不同的代码,我已经建立了这个:

Sub test()
    Dim MiHttp As Object
    Dim MiUrl As String
    Set MiHttp = CreateObject("MSXML2.XMLHTTP")
    
    MiUrl = "https://api.twitter.com/2/timeline/conversation/1273391252357201922.json?include_profile_interstitial_type=1&include_blocking=1&include_blocked_by=1&include_followed_by=1&include_want_retweets=1&include_mute_edge=1&include_can_dm=1&include_can_media_tag=1&skip_status=1&cards_platform=Web-12&include_cards=1&include_ext_alt_text=true&include_reply_count=1&tweet_mode=extended&include_entities=true&include_user_entities=true&include_ext_media_color=true&include_ext_media_availability=true&send_error_codes=true&simple_quoted_tweet=true&count=20&ext=mediaStats%2ChighlightedLabel&include_quote_count=true"
    
    With MiHttp
        .Open "GET", MiUrl
        .Send
        DoEvents
     
        Debug.Print .responseText
    End With


    MiHttp.abort
    Set MiHttp = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)

它运行,没有编码错误,但我明白了:

{"errors":[{"code":200,"message":"Forbidden."}]}

所以我尝试添加带有授权的 RequestHeaders: 在此处输入图片说明

在之前添加这行代码.Send

.setRequestHeader …
Run Code Online (Sandbox Code Playgroud)

twitter excel vba twitter-oauth

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

谷歌表格公式有时不适用于合并单元格

因此,我在 Google Sheets 中创建了一个发票电子表格,并广泛使用了合并单元格,以便为发票创建一个更清晰的外观。

这是我遇到的问题:有时,我的简单减法公式不会给我正确的结果。该公式应该从期初余额(单元格 R27)中减去未售出余额(单元格 V27)。

同样,公式本身没有任何问题,因为它在 99% 的情况下都能正常工作,但时不时地,它只会给我一个与期初余额相匹配的答案。

在此处输入图片说明

这里还有一个指向电子表格副本的链接,供任何愿意查看的人使用。https://docs.google.com/spreadsheets/d/1bf_QE-u36mo4AKyqg7Dk11gwoR0p5g0qveIazR83Xbk/edit?usp=sharing

有没有其他人遇到过这种情况?什么可能导致它,更重要的是,如何修复它以使其更可靠?

google-sheets google-sheets-formula

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

尝试使用 FormulaArray 时出现错误 1004。替换技巧不起作用

背景:我有一个很酷的数组公式,它在 Excel 中运行得非常完美。现在我正在尝试使用 VBA 执行相同的公式。所以我在单元格中输入数组公式并用宏记录。该公式运行完美。宏记录器给我这个:

\n\n
Selection.FormulaArray = _\n    "=INDEX(\'[HOGARES ALBACETE.xlsx]21076\'!C1,MATCH(MAX(IF(RIGHT(\'[HOGARES ALBACETE.xlsx]21076\'!C1,LEN(R[-1]C)+2)=""["" &R[-1]C&""]"",\'[HOGARES ALBACETE.xlsx]21076\'!C2)),IF(RIGHT(\'[HOGARES ALBACETE.xlsx]21076\'!C1,LEN(R[-1]C)+2)=""[""&R[-1]C&""]"",\'[HOGARES ALBACETE.xlsx]21076\'!C2),0),1)"\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果我尝试运行上面的代码,我会收到错误 1004。子程序只有这一行。没有其他的。

\n\n

经过一番研究后,我进入了这个:

\n\n

VBA运行时错误1004:无法设置范围类的formulaarray属性

\n\n

在 VBA 中输入长数组公式

\n\n

所以我把公式分成两部分:

\n\n
Dim theFormulaPart1 As String\nDim theFormulaPart2 As String\nDim MiReemplazo As String\nMiReemplazo = "cacota"\n\ntheFormulaPart1 = "=INDEX(\'[HOGARES ALBACETE.xlsx]21076\'!C1,MATCH(MAX(IF(RIGHT(\'[HOGARES ALBACETE.xlsx]21076\'!C1,LEN(R[-1]C)+2)=""["" &R[-1]C&""]"",\'[HOGARES ALBACETE.xlsx]21076\'!C2))," & MiReemplazo & ",0),1)"\ntheFormulaPart2 = "IF(RIGHT(\'[HOGARES ALBACETE.xlsx]21076\'!C1,LEN(R[-1]C)+2)=""[""&R[-1]C&""]"",\'[HOGARES ALBACETE.xlsx]21076\'!C2)"\n\nWith ActiveSheet.Range(\xe2\x80\x9cF2\xe2\x80\x9d)\n        .FormulaArray = theFormulaPart1\n        .Replace MiReemplazo, theFormulaPart2\n    End With\n
Run Code Online (Sandbox Code Playgroud)\n\n

我没有收到任何错误,但该部分.Replace MiReemplazo, theFormulaPart2什么也没做(我的意思是,替换没有发生,但代码执行)

\n\n

另外,尝试过:

\n\n
ActiveSheet.Range("F2").FormulaArray = theFormulaPart1\n        DoEvents\n        Cells.Replace …
Run Code Online (Sandbox Code Playgroud)

excel vba

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

访问VBA,同时打开同一报表的多个实例

我的目标是从表单中打开报告的多个实例,仅显示 ID 的更改。

所以,VBA代码是:

    DoCmd.OpenReport "ordentallerSobre", acViewPreview, , "id = 20370"
    DoCmd.OpenReport "ordentallerSobre", acViewPreview, , "id = 20371"
Run Code Online (Sandbox Code Playgroud)

然后,只有最后一个报告显示为选项卡。但我需要展示他们两个。对于这个看似微不足道的问题有什么解决方案吗?

ms-access vba

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