私はVBAを使用してExcelでユーザー定義関数を作成しようとしています。これは、その行にx印を持つ店舗のリストを連結します。値を連結するUDF
Store1 Store2 Store3 Concatenate
x x Store1,Store3
x x tore1,Store2
x Store1
私はこのvbaコードを書くことができましたが、これが最良のアプローチであるとは確信できません。私は1000以上の行を試していたので、かなり遅かったです。それを最適化することは可能でしょうか?
firstStore最初にストアを開始する(しない名前が、×印、lastStore1最後の列場所を指す。listofstores1ストア名がある行である。
Function listofstores(firstStore As Range, lastStore1 As Range, listofstores1 As Range)
Application.Volatile
Dim offsetvalue As Integer
offsetvalue = -(lastStore1.Row - listofstores1.Row)
lastStore = lastStore1.Column
Set initial = firstStore
For i = 1 To lastStore
If initial = "X" Or initial = "x" Then Store = initial.Offset(offsetvalue, 0)
c = 1
Set initial = initial.Offset(0, c)
listofstores = listofstores & " " & Store
Store = ""
Next i
End Function
は、Office 2016を持っているなら、あなたが新たに導入されたTEXTJOIN機能を利用することができるかもしれないの任意の場所を行うことができます。https://support.office.com/en- us/article/TEXTJOIN-function-357b449-ec91-49d0-80c3-0e8fc845691c?ui = en-US&rs = en-US&ad = US – Ralph