2017-07-18 195 views
0

我正在面对一个简单的问题,我的代码。我在我的宏中声明了一些值,并且我想将特定的单元格的值(这是一个日期)设置为一个变量。但它不起作用,当我用F8检查它时,它显示它等于“0”。excel vba - 为变量分配一个特定的单元格值

我愿意接受任何建议。

这是代码的一部分;

If j = 1 And Worksheets(WS_All).Cells(8, 3).Value = "Yeni Egitim" Or j = 1 And Worksheets(WS_All).Cells(8, 3).Value = "Tanitim/Reklam" Then 
WA1 = Worksheets(j_WS).Cells(Satir_bul, 7).Value 

正如你所看到的,“WS_All”,“Satir_bul”和“j_WS”预定义宏,我看到那些在F8检查的值,但WA1当属“0”。 我也宣布WA1为Integer。

回答

0

我修改了它一点一点尝试的代码,你应该使用括号在代码:

Sub test() 
    Dim WS_all As String 
    Dim j_WS As String 
    Dim WA1 As Variant 
    Dim Satir_bul As Integer 
    Dim j As Integer 

    WS_all = "List1" 
    j_WS = "List2" 
    Satir_bul = 1 
    j = 1 

    If j = 1 And Worksheets(WS_all).Cells(8, 3).Value = "Yeni Egitim" Or j = 1 And Worksheets(WS_all).Cells(8, 3).Value = "Tanitim/Reklam" Then 
     WA1 = Worksheets(j_WS).Cells(Satir_bul, 7).Value 
     MsgBox (WA1) 
    End If 
End Sub 

,并为我工作。可能的是,在检查String之前或/和之后,您在Cells(8, 3)中有一些空格,并且这不会满足条件。

那么简单Trim功能,可以使用如下:

If j = 1 And Trim(Worksheets(WS_all).Cells(8, 3).Value) = "Yeni Egitim" Or j = 1 And Trim(Worksheets(WS_all).Cells(8, 3).Value) = "Tanitim/Reklam" Then 
+0

非常感谢你的男人。工作就像一个魅力:) – Bildircin13

0

我觉得

If (j = 1 And Worksheets(WS_All).Cells(8, 3).Value = "Yeni Egitim") Or (j = 1 And Worksheets(WS_All).Cells(8, 3).Value = "Tanitim/Reklam") Then 
WA1 = Worksheets(j_WS).Cells(Satir_bul, 7).Value 
+0

我用括号尝试过,但它仍然给“0”。我检查变量的值,一切工作正常。它应该给我我写的日期,但仍然是“0”。 – Bildircin13

+0

没关系。没有看到它解决:D – Windalfin

相关问题