Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据单元格值创建公式的VBA代码_Vba_Excel_Hyperlink_Cell - Fatal编程技术网

根据单元格值创建公式的VBA代码

根据单元格值创建公式的VBA代码,vba,excel,hyperlink,cell,Vba,Excel,Hyperlink,Cell,我有一个电子表格,其中的值在单元格a到G中 我需要读取单元格F中的数据,并根据数据,在H列的相应单元格中形成一个超链接,将单元格G(F旁边)中的数据插入超链接中 例1 单元格F包含:DPD 单元格g包含:123456 希望单元格H创建超链接: =超链接(“&CELLG*&&search.searchType=16&search.javascriptValidated=0&appmode=guest”) 例2 单元F包含:TNT 细胞g含有:abcde 希望单元格H创建超链接: =超链接(“CEL

我有一个电子表格,其中的值在单元格a到G中

我需要读取单元格F中的数据,并根据数据,在H列的相应单元格中形成一个超链接,将单元格G(F旁边)中的数据插入超链接中

例1

单元格F包含:DPD

单元格g包含:123456

希望单元格H创建超链接:

=超链接(“&CELLG*&&search.searchType=16&search.javascriptValidated=0&appmode=guest”)

例2

单元F包含:TNT

细胞g含有:abcde

希望单元格H创建超链接:

=超链接(“CELLG”)

我在单元格F中还有很多其他值依赖于不同的超链接公式,但我应该能够重复和修改代码以适应这些值

更新:

这是我目前应用公式的尝试

  Range("I1").Select
ActiveCell.FormulaR1C1 = _
    "=IF(RC[-2]=""dpd"",HYPERLINK(""http://www.dpd.co.uk/tracking/quicktrack.do?search.consignmentNumber=""&RC[-1]&""&search.searchType=16&search.javascriptValidated=0&appmode=guest""))"
Range("I1").Select
Selection.AutoFill Destination:=Range("i1:i" & Range("A" & Rows.Count).End(xlUp).Row), Type:=xlFillCopy
 Range("I2").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Range("A1:I1").Select
ActiveSheet.Range("A1:i1").AutoFilter Field:=9, Criteria1:="FALSE"
   Range("I2").Select
ActiveCell.FormulaR1C1 = _
    "=IF(R[-1]C[-2]=""City Link"",HYPERLINK(""http://www.packagetrackr.com/track/citylink/""&R[-1]C[-1]&""""))"
  Range("I2").Select
Selection.AutoFill Destination:=Range("i2:i" & Range("A" & Rows.Count).End(xlUp).Row), Type:=xlFillCopy

Range("A1:I1").Select
ActiveSheet.Range("A1:i1").AutoFilter Field:=9, Criteria1:="FALSE"
Range("i2").Select
ActiveCell.FormulaR1C1 = _
    "=IF(R[-1]C[-2]=""hermes"",HYPERLINK(""http://www.hermes-europe.co.uk/tracker.html?trackingNumber=""&R[-1]C[-1]&""&Postcode=""&R[-1]C[-4]&R[-1]C[-3]&""""))"
  Range("I2").Select
Selection.AutoFill Destination:=Range("i2:i" & Range("A" & Rows.Count).End(xlUp).Row), Type:=xlFillCopy

If ActiveSheet.AutoFilterMode = True Then ActiveSheet.AutoFilterMode = False
Range("I2").Select
Selection.Delete Shift:=xlUp
Range("I1").Select
我不知道如何自动填充过滤列表

也许我需要试试循环通过法

失败的公式:


=如果(G2=“hermes”,超链接(“www.hermes-europe.co.uk/tracker.html?trackingNumber=“&H2&”&Postcode=“&e2&f2&”),如果(G2=“Parcelforce”,超链接(“www.Parcelforce.com/track trace?track number=“&H2&”)如果(G2=“皇家邮政”,超链接(“www.royalmail.com/track?track=track&trackNumber=“&H2&”&gear=track&imageRootPath=&loc=en\u GB&default=default&emt=emt”),如果(G2=“Yodel”,超链接(“www.myyodel.co.uk/tracking?package_id=“&h2&”&postcode=“&e2&“%23”&f2&”),如果(G2=“4 Square”,超链接(“login.smartcodit.co.uk/trackingcust.aspx?partnerid=EAFSQ001&jobno=“&h2&”),如果(G2=“德意志邮政”,超链接(“nolp.dhl.de/nextt在线公共/set_identicode.do?lang=en&idc=”&h2&“&rfn=&extendedSearch=true”),如果(G2=“无跟踪”,“&h2&“”)

您必须使用相关单元格的地址,而不是
单元格的地址。请参见此示例

这进入单元格
H1

要在Excel公式中进行比较,可以使用
IF
公式

范例

=If(条件,如果条件为真则执行,如果条件为假则执行)

所以

=IF(F2=“TNT”,如果等于TNT就做,如果不等于TNT就做)

=IF(F2=“DPD”,如果等于DPD就做某事,如果不等于DPD就做某事))

将上述两种方法结合在一起将产生

=IF(F2=“TNT”,等于TNT时做某事,IF(F2=“DPD”,等于DPD时做某事,不等于DPD时做某事))

如果是TNT,请使用本网站

http://www.tnt.com/express/en_gb/site/searchresults.html?q=

如果是DPD,则使用此网站

http://www.dpd.co.uk/tracking/quicktrack.do?search.consignmentNumber=

我们现在要做的就是把它附加到上面的公式中

=IF(F1=“TNT”,超链接http://www.“&F1&.”com/express/en_gb/site/searchresults.html?q=”&
G1&
“&search.searchType=16&search.javascriptValidated=0&appmode=guest”),如果(F1=“DPD”,超链接(”http://www.“&F1&”.co.uk/tracking/quicktrack.do?search.commissionnumber=”&
G1&
“&search.searchType=16&search.javascriptValidated=0&appmode=guest”),”)

截图


Col F在创建这些超链接时扮演什么角色?我可以看到G列被用在公式中…F列将指示哪个公式将被输入H列。。例如,如果单元格f包含“TNT”,则输入到单元格h中的所需公式为=超链接(“G”)这是怎么规定的呢?你在哪里提到的?我的意思是F单元格应该有
DPD
TNT
其他东西?对不起,我的帖子不清楚,谢谢你的回答,但是F单元格中的每个值都有不同的超链接地址。例如DPD网站和TNT网站将有不同的t地址?你能用TNT和DPD的例子更新你的问题吗?还可以提到那些网站是什么谢谢你的回答。你有没有办法给我这个函数的VBA代码?我可以,但我想让你先试试:)我可以想出两种方法
1
从上面复制公式,然后录制一个宏,然后将单元格H1中的公式。停止宏,查看代码如何编写公式
2
编写代码循环F列,检查值是什么,然后构造您的If语句。:)尝试一下,如果卡住了,只需发布您尝试过的代码,我们将从中获取它。感谢您的帮助。公式可以正常工作很好。我会按照你的建议去做,如果我被卡住了会给你回电话的。再次谢谢!