显示最后导入的一周

Display last imported week

我有一个从每周文件导入的excel文件。我可以在输入框中指定要导入的周数。根据这个数字,我构建了该特定周的文件路径和名称,然后将其导入。

在单元格 D1 中,我想显示最后导入的那一周,所以如果我最后导入第 12 周,单元格 D1 应该显示“12”,如果稍后导入前一周的文件,例如 4,单元格 D1 应显示“4”

在 excel 文件中,将通过 vba 代码导入源文件,源文件中没有任何类型的表,因此我需要实现这在我的代码中是为了在单元格 D1 中显示导入的那一周。

我尝试将此实现到我的代码 Range("D1").Value = WeekVal 以便尝试用导入的周数填充该特定单元格。

我在网上搜索过,但我看到的那些并不能很好地应用到我的代码中。所以我真的不需要日期 我只需要代表星期的文件名 中的值,如下所示:

"Status 496 800 week -->12<-- 2015.xls"

这个数字就是我需要在 D1 中显示的数字

我不知道你的文件名是怎么被引用的,所以我做了一个函数,这是一个测试它的例程:

Sub Luis_Montez()
Dim TpS As String, _
    ReZ As String

TpS = "Status 496 800 week 12 2015"
ReZ = Get_WeekNb_From_FileName(TpS)

MsgBox "_" & ReZ & "_"
End Sub

这里是函数:

Public Function Get_WeekNb_From_FileName(ByVal FileName As String) As Integer
Dim TpStr As String
    TpStr = Trim(Mid(FileName, InStr(1, LCase(FileName), "week") + 4, 3))
Get_WeekNb_From_FileName = CInt(TpStr)
End Function

一个更简单的解决方案,只需使用:

Format(Date, "ww")

您可能正在另一项工作的 D2 单元格中编写您的 WeekValsheet(例如,您刚刚从中导入本周数据的工作簿)。

为避免这种情况,始终通过显式命名工作簿和命名范围或sheet名称来引用任何单元格或范围。

对于您的情况,我建议 select 您要写入的 D1 单元格。现在,您可以在公式栏的左侧阅读 D1。改为填写 WeekVal。然后将您的代码更改为

Thisworkbook.Name("WeekVal").RefersToRange.Value = WeekVal