我非常努力地將以下excel公式轉換爲VBA。下面的函數將假定需要在for循環中,並且需要下降動態列長度。我四處搜尋試圖自己編寫腳本,但我似乎無法讓它在沒有錯誤的情況下運行。將Excel公式轉換爲VBA for Mid和查找函數
= MID(A1,FIND( 「:」,A1)+ 1,FIND( 「(」,A1) - 查找( 「:」,A1)-1)
我非常努力地將以下excel公式轉換爲VBA。下面的函數將假定需要在for循環中,並且需要下降動態列長度。我四處搜尋試圖自己編寫腳本,但我似乎無法讓它在沒有錯誤的情況下運行。將Excel公式轉換爲VBA for Mid和查找函數
= MID(A1,FIND( 「:」,A1)+ 1,FIND( 「(」,A1) - 查找( 「:」,A1)-1)
可以得到列長度(或最後一行)動態使用下列內容:?
dim ws as Worksheet
Set ws = Thisworkbook.Worksheets("mySheetNameHere")
dim lastRow, myLoop, semicolPos, bracketPos
lastRow = ws.Cells(ws.rows.count, "A").End(xlUp).Row ' this gets last row in col A
For myLoop = 1 to lastRow
' Find the position of the ";" and the "("
semicolPos = InStr(ws.Range("A" & myLoop).Value, ":") + 1
bracketPos = InStr(ws.Range("A" & myLoop).Value, "(")
newValue = Mid(ws.Range("A" & myLoop).Value, semicolPos, bracketPos - semicolPos)
' Put newValue into column B, one cell over from column A
ws.Range("B" & myLoop).Value = newValue
Next
你的意思是使VBA這項工作使用範圍( 「A1」)和替換INSTR MID(範圍(A1).value的,INSTR(1,範圍FIND (「a1」)。value,「:」)..... –
你的標題說VB腳本,你的文字說VBA。你需要什麼? – Mono
VBA,抱歉有關混淆! – Davey