2017-07-27 75 views
-1

我不确定在这种情况下如何使用左边的公式。我得到这个子调用另一个子,结果取决于ws.cells(1,2)中的内容,但现在我需要一个左边的公式,因为我无法检查整个单元格。有任何想法吗?VBA中的左公式

Sub ForEachWs() 
Dim ws As Worksheet 

For Each ws In ActiveWorkbook.Worksheets 
    Call BuscarImagemTavares(ws, ws.Cells(1, 2).Value) 
    Next ws 
End Sub 
    Sub BuscarImagemTavares(ByVal ws As Worksheet, Produto As String) 
    On Error Resume Next 
    'Autor: Tavares 

    If ws.Range("B2") = "ok" Then 'Verifica se celula B2 tem ok se sim não insere a imagem novamente 
     Exit Sub 
    End If 

    If ws.Range("B1") = "" Then 
     Exit Sub 
    End If 

    Dim Imagem, CaminhoImagem As String 

    If Len(Produto) = 3 Then 'acrescenta 00 antes do cod do produto 
     Produto = "00" & Produto 
    End If 
    If Len(Produto) = 4 Then 'acrescenta 0 antes do cod do produto 
     Produto = "0" & Produto 
    End If 

    Imagem = Dir("\\Clfssrvfar\ENGENHARIA\GESTAO_DE_PROJETOS\04. FOLLOWUP\09. ARQUIVOS PARA FERRAMENTAS\09.1 IMAGENS\09.1.2 IMAGENS PRODUTOS\" & Produto & "*", vbDirectory) 

    CaminhoImagem = "\\Clfssrvfar\ENGENHARIA\GESTAO_DE_PROJETOS\04. FOLLOWUP\09. ARQUIVOS PARA FERRAMENTAS\09.1 IMAGENS\09.1.2 IMAGENS PRODUTOS\" & Imagem 



    With ws.Pictures.Insert(CaminhoImagem) 'Mostra Imagem 
     'Define tamanho e posição da imagem 

    With .ShapeRange 
     .Width = 75 
     .Height = 115 
     .Top = 7 
     .Left = 715 
    End With 
    End With 
    If CaminhoImagem <> "" Then 'Após inserir imagem informa "ok" na B2 para não inserir de novo 
    ws.Range("B2").Value = "OK" 
    End If 

End Sub 
+0

那么你的'BuscarImagemTavares'子呢?你在'ws.Cells(1,2)'中找到了什么样的值? –

+0

你在找什么?特定的字符串?请更具体一些。 – ThatOneGuy

+1

你想要你的代码在这里做什么?你也可以发布BuscarImagemTavares,因为我们不知道它做了什么或者它的输出是什么。 – TheFizh

回答

0

尝试......

Call BuscarImagemTavares(ws, Left(ws.Cells(1, 2).Value, n)) 

没有代替n。你想从左边的字符。

+0

我虽然会工作,但它没有。我不知道该怎么做。 –

+0

它的工作,你给我的代码。我只是删除了“.value” - 奇怪的事情。谢谢哥们! –

+0

不客气! – sktneer

0
Call BuscarImagemTavares(ws, Left$(ws.Cells(1, 2).Value, 4)) 

这将通过第一针对小区的字符。将4改为任何你想要的。

+0

我以前试过,没有工作:/ –

+0

'ws.Cells(1,2).Value'的确切值是什么? – braX

+0

我做了什么,sktneer说,它非常相似,我只需要从它删除“.value”,它的工作。谢谢你的帮助。 –

0

我敢打赌,你正在寻找的东西,如“如果单元(1,2)包含HERP做到这一点”

For Each ws In ActiveWorkbook.Worksheets 
    If InStr(1,ws.Cells(1,2).Value,"Herp")>0 Then 
     Call BuscarImagemTavares(ws, ws.Cells(1, 2).Value) 
    End If 
Next ws 
End Sub 
+0

单元格中的值将改变为每个ws,这是我的第一个想法。 –

+1

它如何改变?你的标准是什么? – ThatOneGuy

+0

没有标准,可能是一个数字字母,这是一个srting,可能是任何东西。 –