小编Pet*_* L.的帖子

如果......那么......之后有多个语句

一个非常简单的问题:考虑If...Then...Else到VBA中的指令,如何在之后分离多个指令Then?换句话说,我应该写点什么

If condition [ Then ]    
   [ statement1 ] & [statement2] 
Else [Else statement] (i.e. using "&"),
Run Code Online (Sandbox Code Playgroud)

要么

If condition [ Then ]         
   [ statement1 ] And [statement2] 
Else [Else statement] (i.e. using "And"),
Run Code Online (Sandbox Code Playgroud)

或其他一些分隔符/命令?

vba if-statement conditional-statements

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

如何在Excel中的第一个数字周围拆分/解析字符串

我在A列中有一个字母和数字混合的字符串.我想在显示的第一个数字之前将字符串分成两半,使得"abc123"在列B中变为"abc"而在列C中变为"123".

excel split excel-formula

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

如何使用baseName而不是Item(#)选择XML子节点?

我有点陷入以下困境:我尝试使用VBA从本地银行网站获取货币汇率 - 主要用于XML解析实践,我会说这是我的第一次认真尝试.

经过几个小时的谷歌搜索和阅读相关的SO问题后,我得到了或多或少的工作解决方案,但我想优化它以获得更好的XML低估.到目前为止一切顺利,问题是:

<LIST_RATE>
    <RATE ISO="EUR" Code="978">
        <TITLE>????</TITLE>
        <CODE>978</CODE>
        <ISO>EUR</ISO>
        <DATE>Thu, 31 Jan 2013 09:00:00 GMT</DATE>
        <BUY>11550.0000</BUY>
        <SELL>11820.0000</SELL>
        <QUANTITY>1</QUANTITY>
    </RATE>
    <RATE ISO="RUB" Code="643">
        <TITLE>?????????? ?????</TITLE>
        <CODE>643</CODE>
        <ISO>RUB</ISO>
        <DATE>Thu, 31 Jan 2013 09:00:00 GMT</DATE>
        <BUY>279.0000</BUY>
        <SELL>292.0000</SELL>
        <QUANTITY>1</QUANTITY>
    </RATE>
    <RATE ISO="USD" Code="840">
        <TITLE>?????? ???</TITLE>
        <CODE>840</CODE>
        <ISO>USD</ISO>
        <DATE>Thu, 31 Jan 2013 09:00:00 GMT</DATE>
        <BUY>8570.0000</BUY>
        <SELL>8710.0000</SELL>
        <QUANTITY>1</QUANTITY>
    </RATE>
</LIST_RATE>
Run Code Online (Sandbox Code Playgroud)

对于上面的XML部分(以防万一 - 这是完整XML的链接:http://www.priorbank.by/CurratesExportXml.axd? channel = 9)我使用以下代码循环遍历RATE节点的子节点LIST_RATE:

For Each RATE_Node In LIST_RATE_Node.ChildNodes
    CurrencyCode = RATE_Node.ChildNodes.Item(2).Text 'ISO node …
Run Code Online (Sandbox Code Playgroud)

xml excel vba excel-vba xml-parsing

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

Excel数据验证来源

我尝试过搜索,但可能只是找不到关键词的正确组合而无法找到解决方案.

我在Excel中尝试做的是根据在另一个单元格中输入的键值生成动态验证列表.

我有3个工作表:WSName(列)

  1. 原木(建筑物,地板)
  2. 建筑物(BuildingId,BuildingName)
  3. 楼层(FloorId,BuildingId,FloorName)

我为所有建筑ID创建了一个名为"BuildingIds"的命名范围

我通过名为"Floor#BuildingId#"的建筑为所有楼层创建了单独的命名范围

我想要的是,当在日志工作表中选择建筑物时,楼层列表将从楼层工作表中动态填充该建筑物的可用楼层.

我的想法是在数据验证源中我应该能够这样做:

=INDIRECT("Floors"&$A$2)
Run Code Online (Sandbox Code Playgroud)

它部分工作,但总是返回相同的楼层列表,因为$ A $ 2不是动态的,具体取决于它所在的行,所以我需要$ A $ 2来使用当前行的值.

这将返回我想要当前行的所选建筑物的值:

=INDIRECT("A"&ROW())
Run Code Online (Sandbox Code Playgroud)

但是当我尝试:

=INDIRECT(CONCATENATE("Floor","A"&ROW()))
Run Code Online (Sandbox Code Playgroud)

要么

=CONCATENATE("Floor",INDIRECT("A"&ROW()))
Run Code Online (Sandbox Code Playgroud)

我收到一个错误.

你能帮帮我这个配方吗?!提前致谢!

validation excel excel-formula

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

不理解为什么WinHTTP不验证某些HTTPS资源

我非常感谢任何可以帮助我解决问题的帮助.

从Excel VBA代码我需要从HTTPS站点https://redmine.itransition.com/下载并解析CSV文件.我尝试使用WinHTTP来获取文件.但是,我无法理解为什么身份验证不起作用.这是相关代码:

TargetURL = "https://redmine.itransition.com/projects/pmct/time_entries.csv"
Set HTTPReq = CreateObject("WinHttp.WinHttpRequest.5.1")
HTTPReq.Option(4) = 13056 ' WinHttpRequestOption_SslErrorIgnoreFlags 13056: ignore all err, 0: accept no err
HTTPReq.Open "GET", TargetURL, False
HTTPReq.SetCredentials "UN", "PW", 0
HTTPReq.send
Run Code Online (Sandbox Code Playgroud)

返回以下响应(仅列出某些字符串):

Content-Type: text/html; charset=utf-8
Status: 406
X-Runtime: 5
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用成功的手动身份验证后从Firefox cookie发送"Cookie"字符串

HTTPReq.setRequestHeader "Cookie", SetCookieString
HTTPReq.send
Run Code Online (Sandbox Code Playgroud)

我很容易得到预期的文件.当然,我对这种解决方案不满意,并希望执行真正的WinHTTP身份验证.但是,我无法理解我的代码中出了什么问题或错过了什么.我很可能必须使用.SetClientCertificate方法,但这对我来说还不清楚 - 需要哪个证书?

或者,更一般:我应该使用哪些WinHTTP方法或函数进行调试,以找出哪个步骤阻塞/不正确并阻止我进行正确的身份验证?我花了两周时间通过MSDN和各种资源寻求,但仍然没有解决方案.

提前感谢您的建议!

authentication https vba winhttp

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

Excel - 公式IF AND错误

我在Excel电子表格中有以下数据,我想识别没有花费并且在前面已经关闭的商店

OutletID    Name         Trans   Spend      Customers   
1234        Store1       61      $1,139.02  56
1235        ClosedStore2 0       0          0
Run Code Online (Sandbox Code Playgroud)

我有以下公式:

=IF(AND(SUM(C2:F2)=0,LEFT(B2,6)="Closed","DELETE"),"")
Run Code Online (Sandbox Code Playgroud)

但似乎没有工作,因为它返回 #VALUE!

你能告诉我哪里出错了吗?谢谢

excel excel-formula

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

Excel VBA:对选择中的每一行进行排序

我正在尝试对选择中的每一行进行排序.例:

排序前:

8 3 17
2 9 4
5 3 8
Run Code Online (Sandbox Code Playgroud)

排序后:

3 8 17
2 4 9
3 5 8
Run Code Online (Sandbox Code Playgroud)

我写了这段代码,但它不起作用:

Public Sub SortByString()
Dim row As Range
For Each row In Selection.Rows
    row.Sort Key1:=row, Order1:=xlAscending, Orientation:=xlSortColumns
Next row
End Sub
Run Code Online (Sandbox Code Playgroud)

我是VBA的新手.比我做错了?请帮忙.

excel vba excel-vba

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