Excel 超级链接打不开,里面有特殊符号井号(#)

2024-05-05 23:40

1. Excel 超级链接打不开,里面有特殊符号井号(#)

文件名支持#,但Excel的超链接不支持#,可以使用VBA曲线解决
Private Sub CommandButton1_Click()
Dim FN$, Str$, n&, Str2$
FN = ThisWorkbook.Path & "\list.txt"
n = 2
With Application.FileDialog(msoFileDialogFolderPicker)
    If .Show Then
        CreateObject("wscript.shell").Run Environ("comspec") & " /c dir /s/b/a-d """ & .SelectedItems(1) & "\*.*"">""" & FN & """", 0, 1
        With CreateObject("scripting.filesystemobject").opentextfile(FN)
            Do While Not .atendofstream
                Str = .readline
                If Str  ThisWorkbook.FullName And Str  FN Then
                Str2 = Right(Str, Len(Str) - InStrRev(Str, "\"))
                    'ActiveSheet.Hyperlinks.Add Cells(N, 2), Str, , Str, Str
                    Cells(n, 2) = Str
                    'ActiveSheet.Hyperlinks.Add Cells(n, 3), Str, , Str, Str2
                    Cells(n, 3) = Str2
                    n = n + 1
                End If
            Loop
            .Close
        End With
        Kill FN
        MsgBox "OK,文件目录已建立"
    End If
End With
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)     
'双击C列单元格打开对应文件
Dim myfile As String
If Target.Column = 3 And Target.Row > 1 Then
   myfile = ActiveCell.Offset(, -1)
   If myfile  "" Then
      Workbooks.Open Filename:=myfile
   End If
End If
End Sub

Excel 超级链接打不开,里面有特殊符号井号(#)

2. EXCEL中如何动态计算最近7天和30天的数据之和?

“最近7天和30天”没说得特别清楚,意思是从今天往后推7天或30天的么?
1)“最近7天”,如果含今天(例如,今天是26号),那就是统计20-26日,AK2写公式:=SUMPRODUCT(($F$1:$AJ$1>DAY(TODAY())-7)*($F$1:$AJ$1<=DAY(TODAY()))*(F2:AJ2))
2)“最近7天”,如果不含今天(例如,今天是26号),那就是统计19-25日,AK2写公式:=SUMPRODUCT(($F$1:$AJ$1>=DAY(TODAY())-7)*($F$1:$AJ$1<DAY(TODAY()))*(F2:AJ2))
3)“最近30天”,公式参考上面的公式。将上面的公式中的7改为30即可。

3. excel 请大神给公式 谢谢

出勤天数=COUNTIF(A3:Q3,"0")
休息天数=COUNTIF(A3:Q3,"=0")
中班天数=COUNTIF(A3:Q3,"=中")
夜班天数=COUNTIF(A3:Q3,"=夜")
至于统计区域,那得按你表格的起止行列来,按你图上的区域是F2:AJ2

excel 请大神给公式 谢谢

4. EXCEL:if函数,满足条件1,返回一个值,满足条件2,返回另一值。若返回值小于零,则为0,请高人指点

如果要实现所在单元格(A1)的数值小于0时,取0值,也就相当于在A1与0之间取最大值,因此可以用Max函数来实现,即:=Max(A1,0)
用你的原始公式替换上面的A1就可以了。

问题是,你所给公式已经超出了IF函数所能容纳的最大层数,因此必须优化后才能运行。
最外面两层是针对不同单元格(AJ3、AM3)进行判断的,不好优化。但内层的几个判断,都是根据D3的值进行判断,通常用Lookup、HLookup或VLookup进行判断。这里以VLookup函数为例列出内层几个IF函数的近似公式:
=VLOOKUP(D3,{11,R3-(U3+U4-AJ3-AJ4);22,R3-(U3+U4+U5-AJ3-AJ4-AJ5);33,R3-(U3+U4+U5+U6-AJ3-AJ4-AJ5-AJ6);44,R3-(U3+U4+U5+U6+U7-AJ3-AJ4-AJ5-AJ6-AJ7);55,0;66,R3-(U3-AJ3);77,R3-(U3+U2-AJ3-AJ2)},2,0)

注:把公式最后面的“,0”去掉也是可以的。
这里只所以说是近似,因为最终效果还是有所不同的。

为了描述方便,把你所给出的内层公式称为公式1,上面的公式称为公式2,不包括“,0”的公式称为公式3。
如果D3的值只能取11、22、33、44、55、66、77中的一个值,不会有其他例外,上面的三个公式效果都是相同的。
但如果D3的值比较自由,比如D3=30,情况就会有明显的不同:
公式1返回FALSE(IF函数实际应有3个参数,在第3参数缺省情况下,在不满足所给定条件时,就会返回FALSE值)。
公式2返回错误值#N/A,这个公式为精确查找,用查找项的顺序无关,这个公式允许不按升序排列,比如就按你原公式中提供的66、11、22、33、44、55、77的顺序,效果也是一样的。
公式3返回小于D3值并与之最近的一个值所对应的返回值,即22对应的数值“R3-(U3+U4+U5-AJ3-AJ4-AJ5)”。
你如果真的想实现在D3不为11...77值时,返回FALSE值,就只好在公式2或3的外围再嵌套一个IF函数
=IF(AND(D3=11,D3=22,D3=33,D3=44,D3=55,D3=66,D3=77),公式3)
最终公式为
=Max(0,IF(AJ3=0,0,IF(AM3<=100%,AJ3,VLOOKUP(D3,{11,R3-(U3+U4-AJ3-AJ4);22,R3-(U3+U4+U5-AJ3-AJ4-AJ5);33,R3-(U3+U4+U5+U6-AJ3-AJ4-AJ5-AJ6);44,R3-(U3+U4+U5+U6+U7-AJ3-AJ4-AJ5-AJ6-AJ7);55,0;66,R3-(U3-AJ3);77,R3-(U3+U2-AJ3-AJ2)},2))))
加上有可能返回FALSE值的可能性的公式
=Max(0,IF(AJ3=0,0,IF(AM3<=100%,AJ3,IF(AND(D3=11,D3=22,D3=33,D3=44,D3=55,D3=66,D3=77),VLOOKUP(D3,{11,R3-(U3+U4-AJ3-AJ4);22,R3-(U3+U4+U5-AJ3-AJ4-AJ5);33,R3-(U3+U4+U5+U6-AJ3-AJ4-AJ5-AJ6);44,R3-(U3+U4+U5+U6+U7-AJ3-AJ4-AJ5-AJ6-AJ7);55,0;66,R3-(U3-AJ3);77,R3-(U3+U2-AJ3-AJ2)},2,0)))))

------------------------------------
欢迎到Excel Home论坛学习、交流

5. excel自动填充工作表名称,名称已经排序为:1,2,3~~~

c2=SUMIF(indirect(column(a1)&"!b:b"),学习!$B$2,direct(column(a1)&"!g:g")),有拉即可

excel自动填充工作表名称,名称已经排序为:1,2,3~~~

6. 我想求一行中非零的最小值,公式是=MIN(IF(AJ2:AY2<>0,AJ2:AY2)),但是老提示#Value!是怎么回事

你这是数组公式,要摁键盘上的 SHIFT+CTRL+回车 结束公式的输入才行的。
最新文章
热门文章
推荐阅读