一个非常简单的问题:考虑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)
或其他一些分隔符/命令?
我在A列中有一个字母和数字混合的字符串.我想在显示的第一个数字之前将字符串分成两半,使得"abc123"在列B中变为"abc"而在列C中变为"123".
我有点陷入以下困境:我尝试使用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) 我尝试过搜索,但可能只是找不到关键词的正确组合而无法找到解决方案.
我在Excel中尝试做的是根据在另一个单元格中输入的键值生成动态验证列表.
我有3个工作表:WSName(列)
我为所有建筑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)
我收到一个错误.
你能帮帮我这个配方吗?!提前致谢!
我非常感谢任何可以帮助我解决问题的帮助.
从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和各种资源寻求,但仍然没有解决方案.
提前感谢您的建议!
我在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!
你能告诉我哪里出错了吗?谢谢
我正在尝试对选择中的每一行进行排序.例:
排序前:
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 ×5
vba ×4
excel-vba ×2
https ×1
if-statement ×1
split ×1
validation ×1
winhttp ×1
xml ×1
xml-parsing ×1