In this paper, the problem of subcarrier allocation and power control for uplink orthogonal frequency division multiple access (OFDMA) channels is studied. Each user may have a different strategy of power control due to his/her own limits of battery, quality-of-service (QoS) requirement, and the amount of information to transmit. The problem is first formulated as a minimization problem, and the alternating direction method of multipliers (ADMM) is then introduced to solve the problem in a distributed manner. Necessary conditions of each subproblem are derived to obtain a deeper understanding in the structure of the solutions. Numerical results show that the algorithm converges fast and obtains a near-optimal solution within only a few iterations.