显示上次导入的周

时间:2015-07-16 08:52:30

标签: excel vba excel-vba week-number

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

在单元格D1中我想显示上次导入的周,因此如果我上次导入第12周,则单元格D1应显示“12”,如果稍后我从旧版本导入文件如4周,单元格D1应显示“4”

在excel文件中,将导入的源文件将通过vba代码,它在源文件中没有任何类型的表,所以我需要在我的代码中实现它以便在单元格D1导入的那一周。

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

我在线搜索,但我看到的那些并不适用于我的代码。所以我真的不需要一个日期我只需要代表本周的文件名的值,就像这里一样:

  

“状态496 800周 - > 12 < - 2015.xls”

这个号码是我需要在D1中显示的

2 个答案:

答案 0 :(得分:0)

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

OdbcCommand cmd= new OdbcCommand(CommandType.Text, myConnection); 

这是功能:

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

答案 1 :(得分:0)

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

为避免这种情况,始终通过明确命名工作簿以及命名范围或工作表名称来引用任何单元格或范围。

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

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