Este es el código que tengo hasta ahora. Obtengo un error de objeto requerido en la primera línea. No estoy seguro de cómo hacer esto/qué hice mal. Básicamente, quiero revisar todas las columnas de una hoja y todas las filas hasta la primera aparición del valor. Luego, quiero establecer la columna en la que aparece este valor como una variable accesible para todas las subfunciones.
Property Get col() As Long Count = 1 Do Set col = wsSrc.Columns(Count).Find(What:="Value", LookIn:=xlValues, _ LookAt:=xlPart, MatchCase:=False) Count = Count +1 Loop Until Not col Is Nothing End PropertyAdemás, tengo otro emisor en el que quiero que la hoja de trabajo seleccionada actualmente y en la que estoy trabajando sea la fuente de datos para mi función. Actualmente esto es lo que tengo que definir el valor.
Property Get wsSrc() As Worksheet Set wsSrc = Workbooks("SourceBook").Worksheets("SourceSheet") End PropertySin embargo, quiero cambiarlo para que wsSrc sea solo el libro de trabajo en el que estoy trabajando. Traté de hacer que el siguiente código ejecutara esto, sin embargo, recibo un error de subíndice fuera de rango.
Property Get wsSrc() As Worksheet Set wsSrc = ThisWorkbook.Worksheets("MBI DSCR") End PropertyNo estoy seguro exactamente de lo que está tratando de lograr con la variable col. Pero si solo desea devolver el índice de la columna y no el valor de la columna, use .column al final. Y el wsSrc funciona bien sin problemas para mí.
Sub test() wsSrc.Range("A1") = col End Sub Property Get wsSrc() As Worksheet Set wsSrc = ActiveWorkbook.Worksheets("sheet1") End Property Property Get col() As Long col = wsSrc.Columns.Find(What:="Value", LookIn:=xlValues, LookAt:=xlPart, MatchCase:=False).Column End Property