0

ここからの助けを借りてMac / PCの苦情を申し立てるために、私が取り組んでいるこのコードがありますが、これが少なくとも今のところ私のPCで実行された後、会社名と部品番号フォルダーを含むフォルダーを作成しました後で使用します。

Sub MakeFolder()

Dim strComp As String, strPart As String, strPath As String

strComp = Range("A1") ' assumes company name in A1
strPart = CleanName(Range("C1")) ' assumes part in C1
strPath = "C:\Images\"

If Not FolderExists(strPath & strComp) Then 
'company doesn't exist, so create full path
    FolderCreate strPath & strComp & "\" & strPart
Else
'company does exist, but does part folder
    If Not FolderExists(strPath & strComp & "\" & strPart) Then
        FolderCreate strPath & strComp & "\" & strPart
    End If
End If

End Sub

Function FolderCreate(ByVal path As String) As Boolean

FolderCreate = True
Dim fso As New FileSystemObject

If Functions.FolderExists(path) Then
    Exit Function
Else
    On Error GoTo DeadInTheWater
    fso.CreateFolder path 
    Exit Function
End If

DeadInTheWater:
    MsgBox "A folder could not be created for the following path: " & path & ". Check the path name and try again."
    FolderCreate = False
    Exit Function

End Function

Function FolderExists(ByVal path As String) As Boolean

FolderExists = False
Dim fso As New FileSystemObject

If fso.FolderExists(path) Then FolderExists = True

End Function

Function CleanName(strName as String) as String
'will clean part # name so it can be made into valid folder name
'may need to add more lines to get rid of other characters

    CleanName = Replace(strName, "/","")
    CleanName = Replace(CleanName, "-","")
    etc...

End Function

今、私がやろうとしているのは、前述の顧客が存在し、SO# フォルダーが存在する場合、同じ行の P. でそれへのリンクを作成するようにすることです。

以下に示すように、パスは C:\Images\Company Name\SO#\ です。

私が望むリンクは、代表的な行で「SO#」の写真になり、SO# は行自体の SO# に置き換えられます。次に、それをクリックすると、リンクからエクスプローラーのフォルダーに移動します。

理論的には、コードが次のようになるようにすることもできますが、完全にはわかりません...

Option Explicit

Sub Create_a_Link()

    Dim wsJAR As Worksheet 'JL Archive
    Dim lastrow As Long, fstcell As Long
    Set wsJAR = Sheets("JL Archive")

    With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
        .EnableEvents = False
    End With

     With JAR
        lastrow = wsJAR.Cells(Rows.Count, "P").End(xlUp).Row
        Range("P3:P" & lastrow).Value = Hyperlink("C:\$C3:C" & lastrow \" & "B3:B" & lastrow, "Cellname")
    End With

    With Application
        .ScreenUpdating = True
        .DisplayAlerts = True
        .EnableEvents = True
    End With

しかし、ここでエラーが発生し続けます:

   Range("P3:P" & lastrow).Value = Hyperlink("C:\$C3:C" & lastrow \" & "B3:B" & lastrow, "Cellname")

コンパイルエラーを言う:リスト区切り文字または)が必要

どなたかお力添えいただければ幸いです... エクセルシートを添付いたします。

https://dl.dropbox.com/u/3327208/Excel/picture.xlsx

4

1 に答える 1

1

ここでの問題は、ハイパーリンクを作成するための正しい構文がないことです。マクロ レコーダーを使用して、ハイパーリンクをシートに追加するコードを確認しました。「Excel VBA ハイパーリンクを範囲に追加」もグーグル検索しました。結果の構文は次のとおりです。

ActiveSheet.Hyperlinks.Add Anchor:=myRange, Address:= myPath, TextToDisplay:= myText

myRange = the place you want the hyperlink to go
myPath = the path of the hyperlink
myText = the text you want to display

ここで私はあなたに答えを与えましたが、将来あなた自身の答えを見つけるための最善の方法も示しました. 答えを検索する方法を学ぶことは、VBA でコーディングする方法を学ぶことの半分の戦いです!

** 編集 **

また、一度に全範囲を設定することはできません。行をループして、各ハイパーリンクを個別に追加する必要があります。それ以外の場合は、ジョブを作成するときにハイパーリンクを追加できます (過去の会話から取得します)。

于 2012-05-31T14:21:02.580 に答える